JMockit可以用参数构造函数初始化mock对象吗



当我把@Mocked注释放在一个只有带参数的构造函数的对象上时,这个对象会正确启动吗?

当我把@Mocked注释放在一个只有带参数的构造函数的对象上时,这个对象会正确启动吗?

否。

将创建具有相同接口模拟。这意味着它将具有相同的public方法,并且如果测试类在同一个包中,它也将具有可访问的相同protectedpackage private方法。

这个mock不会调用mock类的实际方法(除非您这样配置它)。

这意味着,对于被测试(cut)中的代码预期调用的、并且定义了返回值的每个方法,您必须配置mock,以便它返回您的cut在特定测试中使用的值。

这种可配置的返回值和mock的验证功能是我们使用mock框架的原因。


注意

如果您想模拟对访问由模拟类构造函数初始化的成员的方法的调用,则必须使用格式

doReturn(SOME_VALUE).when(mock).methodToBeCalledByYourCut();

因为表单

when(mock.methodToBeCalledByYourCut()).thenReturn(SOME_VALUE);

将在该特殊情况下引发CCD_ 4。

最新更新