0

我试图弄清楚如何使用 When 方法供我使用。

When(Func<bool> condition);

此处的另一篇文章有​​一个使用 When 方法的示例

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);

以上两行代码都不起作用,语法不正确。知道如何正确编写它。谢谢

4

1 回答 1

3

您必须设置方法返回:

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);
于 2013-03-05T00:43:45.453 回答