当我将@Mocked批注放在只有带有参数的构造函数的对象上时,此对象会正确启动吗?
当我将@Mocked批注放在只有带有参数的构造函数的对象上时,此对象会正确启动吗?
不。
一个模拟将创建具有相同的接口。这意味着它具有相同的public
方法,如果测试类是在同一个包也将具有相同protected
和package private
方法进行访问。
该模拟将不会调用模拟类的实际方法(除非您进行了配置)。
这意味着对于被测试(剪切)的代码预期将调用的每个方法,并定义了返回值,您必须配置模拟程序,以便返回一个剪切将在该特定测试中使用的值。
这种可配置的返回值和模拟的验证功能是我们使用模拟框架的原因。
如果要模拟对访问由模拟类构造函数初始化的成员的方法的调用,则必须使用以下形式
doReturn(SOME_VALUE).when(mock).methodToBeCalledByYourCut();
因为形式
when(mock.methodToBeCalledByYourCut()).thenReturn(SOME_VALUE);
NullPointerException
在这种特殊情况下将引发一个。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句