我陷入了与Mockito的第一个jUnit测试中。
我必须测试一个方法,该方法将ArrayList作为参数。 在此方法中,将有另一个名为Runtimes执行的类。 因此,我需要使用Runtime执行来模拟该类,因为它们希望在Jenkins上失败(因为Jenkins在Linux上运行)。
首先是两个类:
HandleInformation testClass;
将成为睾丸的班级
XFDHandler test;
与Runtime执行的接口,该类称为XFDHandlerProd
所以首先我模拟了运行时类:
test = Mockito.mock(XFDHandlerProd.class);
这四个方法都是空方法,因此,当我正确理解官方文档时,该方法本身不应执行任何操作:
注意,默认情况下,模拟上的void方法什么也不做!
因此,我将进行第一个测试:
@Test
public void testNullList() throws IOException, InterruptedException {
ArrayList<Info> nullArray = new ArrayList<Info>();
testClass.handleInformation(nullArray);
Mockito.verify(test, Mockito.times(1)).turnOnBlue();
}
当我向testClass发送一个空列表时,应将其称为Runtime-Class turnOnBlue();
的void方法turnOnBlue();
。 据我所知,使用verify
方法可以检查该方法是否真的被调用。
但是,当我现在运行测试时,会出现以下错误:
想要但不被调用:xFDHandlerProd.turnOnBlue();
->在com.example.example.business.HandleInformationTest.testNullList(HandleInformationTest.java:44)
实际上,与该模拟游戏的互动为零。
第44行是Mockito.verfiy()
的行
现在我不知道我在做什么错。
思想
是通信零监守我在使用HandleInformation
类我使用的另一个实例XFDHandler
,所以可以的Mockito没有看到任何活动?
如果是这样,如何我能够在测试类的Mockito使用,而不在不断变化的任何方法HandleInformation
类?