在Mockito中为一个模拟类调用什么构造函数(如果有的话)?

时间:2016-07-08 10:46:12

标签: java mocking mockito

在测试类中,我们指示mockito提供一些模拟对象(用@Mock注释这些属性字段)以进行测试(可能会注入@InjectMocks attribute-field),创建每个模拟时遵循的规则是什么?

更具体地说:

1)每个模拟是如何构建的?

2)如何处理每个模拟的依赖关系?嘲笑时应该考虑哪些规则和限制?

3)案例"模拟A类依赖于B类,而B类又被模拟(在同一测试类中)"与案例不同"模拟A类依赖于B类而B类不被嘲笑"?

1 个答案:

答案 0 :(得分:5)

模拟的想法与您的问题所暗示的完全相反:它们不是通过调用您的构造函数来调用的。这就是模拟的全部概念:它们与您的生产代码没有

换句话说:你要求一些A.class的模拟对象;你得到一个支持A.class方法的对象。从这个意义上说,模拟的A对象没有任何依赖关系。

你知道,这就是重点:如果一个被模拟的A与真实的A相同;嘲笑有什么意义?