在测试类中,我们指示mockito
提供一些模拟对象(用@Mock
注释这些属性字段)以进行测试(可能会注入@InjectMocks
attribute-field),创建每个模拟时遵循的规则是什么?
更具体地说:
1)每个模拟是如何构建的?
2)如何处理每个模拟的依赖关系?嘲笑时应该考虑哪些规则和限制?
3)案例"模拟A类依赖于B类,而B类又被模拟(在同一测试类中)"与案例不同"模拟A类依赖于B类而B类不被嘲笑"?
答案 0 :(得分:5)
模拟的想法与您的问题所暗示的完全相反:它们不是通过调用您的构造函数来调用的。这就是模拟的全部概念:它们与您的生产代码没有。
换句话说:你要求一些A.class的模拟对象;你得到一个支持A.class方法的对象。从这个意义上说,模拟的A对象没有任何依赖关系。
你知道,这就是重点:如果一个被模拟的A与真实的A相同;嘲笑有什么意义?