如果我使用 Mockito,什么时候需要实现用于单元测试的接口?



我是单元测试和Mockito的新手。我为最佳实践编写接口代码,但是,由于我使用Mockito,我实际上什么时候需要为单元测试实现这些接口?如果我正在寻找不同于Mockito mock提供的默认值,我只需要这个吗?

谢谢!

您只"需要"一个被测类的实现("被测系统")。任何合作者——可能以被测试类中的注入字段的形式出现,或者以你在被测试类中调用的方法的参数的形式出现——可能作为模拟接口留下。

然而,您使用的真实对象越少,您的测试就变得越复杂,因为您必须为那些合作者重写所有预期的行为作为"when(…)"语句。从本质上讲,您实际上会以"when(…)"语句的形式再次编写应用程序代码。

我尝试只模拟具有长链依赖关系的"深度"对象,以便产生我试图创建的测试场景。像实体类、传输对象之类的东西很少应该被模拟,因此它们通常应该被实现。其他类型的对象是灰色地带。

最终,您将始终希望确保对实际实现类进行测试,否则测试就没有意义了。

最新更新