我想知道如何使用When方法供我使用。
When(Func<bool> condition);
这里的另一篇文章有一个美国的方法
的例子var mockedService = new Mock<IFormatProvider>();
mockedService.When(() => DateTime.Now.Hour < 12).Setup(x => x.GetFormat(typeof(string))).Returns(null);
我想要做的是我有一个名为x的变量。我想使用When方法,所以它只在X不是Null时执行动作。
例如
mockedService.When(()=> !null x).Returns(x)
or
mockedService.When(condition => x).Returns(x);
以上两行代码都不正常,syntex不正确。 知道如何正确编写它。谢谢
答案 0 :(得分:1)
您必须使用Setup方法返回:
mockedService.When(() => null != x)
.Setup(s => s.GetFormat(It.IsAny<Type>()))
.Returns(x);
另一种方式:
mockedService
.Setup(s => s.GetFormat(It.Is<Type>(t => x != null)))
.Returns(x);