c# - Moq When(Func<bool>) 方法的使用

标签 c# moq

我找不到在 Moq 中使用 When 方法的示例

When(Func<bool> condition);

该方法的目的/用途是什么?请提供一个代码示例,展示一个有用的场景。

最佳答案

“何时”让您可以选择对同一个模拟对象进行不同的设置,具体取决于您必须决定的内容。假设您想测试您编写的格式提供程序。如果程序(= 测试)在早上运行,某个函数调用应该返回 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);

关于c# - Moq When(Func<bool>) 方法的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7767253/

相关文章:

c# - 检查属性是否已设置 - 使用 Moq

unit-testing - 无法将 ReactiveUI 添加到 NUnit 测试项目

c# - moq No setups configured error,如何快速正确添加setup

c# - 如何有效裁剪 *indexed* 位图并获得 *indexed* 结果?

c# - 在 vb.net 中绕过代理服务器

c# - StringBuilder 编码导致 PInvokeStackImbalance 异常

unit-testing - 使用多个构造函数参数模拟和测试类

unit-testing - 最小起订量:如何断言我的模拟对象上的方法未运行?

c# - 如何使 DateTimePicker 在鼠标滚轮上递增/递减

c# - 使用 Excel 加载项