繁体   English   中英

使用Moq时(Func <bool> ) 方法

[英]Usage of Moq When(Func<bool>) method

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

When(Func<bool> condition);

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

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

使用此方法,您可以在Mock<T>.When(...)设置的条件求值为true时配置Mock<T>.When(...)对象的行为。 这使得模拟对象能够根据给定条件做出不同反应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM