6

据我了解,使StrictStubbinglenient引发的异常静音。基于此,不应该使用,可能只是在执行 TDD 时临时使用,因为严格的存根异常通常意味着您的代码要么错误,要么测试设计不当,要么您添加了不必要的行。lenient

是否存在lenient实际需要或对测试有用的实际场景?

4

3 回答 3

3

例如,在从 Mockito 1 迁移到 Mockito 2(后者引入了严格的存根)时,如果您需要在短时间内完成迁移,它就非常有用。

于 2020-03-04T09:12:55.317 回答
2

引入了严格的存根来检测不必要的存根并编写更清晰的测试。如果你遇到异常,重点应该放在改进测试用例上,而不是绕过严格的存根检查。

于 2021-04-22T05:26:14.403 回答
1

我刚刚遇到了一个不寻常的有效用途。我们进行了代码更改,默认情况下禁用了一项功能(在将来的版本中完全取消它之前)。我们需要一个测试来证明禁用确实有效,所以我们需要将一些标志模拟为假。但是,我们还需要模拟一些其他值,因为如果禁用该功能的代码(测试该标志)以某种方式被破坏,该功能的默认设置无论如何都会导致它什么也不做,所以我们不会t 能够观察到标志的失败。

总结一下:在成功的情况下,我们会得到 UnnecessaryStubbingException 的模拟,但没有它,失败的情况实际上不会失败。因此,我们将这些特定的嘲笑标记为宽容。

于 2021-01-29T09:40:59.040 回答