我找不到在Moq中使用When方法的示例
When(Func<bool> condition);
Run Code Online (Sandbox Code Playgroud)
该方法的目的/用途是什么?请提供一个代码示例,演示一个有用的场景.
Fis*_*aen 28
"When"为您提供了为同一个模拟对象设置不同设置的选项,具体取决于您必须决定的内容.假设您要测试您编写的格式提供程序.如果程序(= test)在早上运行,某个函数调用应该返回null; 在下午有一定的价值.然后你可以使用"When"来编写那些条件设置.
var mockedService = new Mock<IFormatProvider>();
mockedService.When(() => DateTime.Now.Hour < 12).Setup(x => x.GetFormat(typeof(string))).Returns(null);
mockedService.When(() => DateTime.Now.Hour >= 12).Setup(x => x.GetFormat(typeof(string))).Returns(42);
Run Code Online (Sandbox Code Playgroud)