Moq When(Func) 方法的用法

发布于 2024-12-09 17:34:05 字数 132 浏览 0 评论 0原文

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

When(Func<bool> condition);

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

I can't find an example of the usage of the When method in Moq

When(Func<bool> condition);

What is the purpose/usage of the method? Please give a code sample demonstrating a scenario where it would be useful.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

够运 2024-12-16 17:34:05

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

"When" gives you the option to have different setups for the same mocked object, depending on whatever you have to decide. Let's say you want to test a format provider you have written. If the program (= test) runs in the morning a certain function call should return null; in the afternoon a certain value. Then you can use "When" to write those conditional setups.

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);
逆蝶 2024-12-16 17:34:05

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

With this method you can configure your mocked object's behavior when the condition set in Mock<T>.When(...) evaluates to true. This enables your mocked object to react differently depending on the given condition.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文