gpt4 book ai didi

unit-testing - 什么是严格和非严格模拟?

转载 作者:行者123 更新时间:2023-12-03 22:22:45 25 4
gpt4 key购买 nike

我已经开始使用 moq 进行模拟。有人可以解释一下严格和非严格模拟的概念吗?它们如何在最小起订量中使用?

编辑:
在哪种情况下我们使用哪种类型的模拟?

最佳答案

我不确定起订量,但这里是严格的模拟在 Rhino 中的工作方式。我声明我希望接到 foo.Bar 的电话在我的对象上foo :

foo.Expect(f => f.Bar()).Returns(5);

如果调用代码确实
foo.Bar();

那么我很好,因为期望得到了完全满足。

但是,如果调用代码是:
foo.Quux(12);
foo.Bar();

然后我的期望失败了,因为我没有明确期望调用 foo.Quux .

总而言之,如果有任何与预期不同的地方,严格的模拟将立即失败。另一方面,非严格的模拟(或 stub )会很乐意“忽略”对 foo.Quux 的调用。它应该返回 default(T)返回类型 Tfoo.Quux .

犀牛创始人 recommends that you avoid strict mocks (并且更喜欢 stub ),因为您通常不希望在收到上述意外调用时测试失败。当您必须修复数十个依赖于确切原始行为的测试时,它会使重构代码变得更加困难。

关于unit-testing - 什么是严格和非严格模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3134108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com