我在JAVA类中有以下代码框架,名为" TestClass.Java":
public String functionA () {
if (function B() == true) {
String testVariable = function C();
String test2 = testVariable +"Here a test";
} else {
...
}
}
我需要对此函数functionA()应用单元测试,其中测试已应用于functionB()和functionC(): 我在下面做了:
private TestClass mockTestClass ;
@Test
public void testFunctionA() {
mockTestClass = Mockito.mock(TestClass.class);
private MockComponentWorker mockito;
Mockito.when(mockTestClass.functionB()).thenReturn(true);//already test is done;
Mockito.when(mockTestClass.functionC()).thenReturn("test"); //already test is done;
mockito = mockitoContainer.getMockWorker();
mockito.addMock(TestClass.class,mockTestClass);
mockito.init();
assertEquals("PAssed!", "test Here a test", mockTestClass.functionA());
}
当我运行测试时,我在NULL
中得到了mockTestClass.functionA()
。
你能帮忙吗?如何测试这个功能?
答案 0 :(得分:0)
您通常希望模拟其他类而不是您实际测试的类。但是对于你的例子,如果你真的想模拟调用functionB()
和functionC()
,你需要监视TestClass 。而不是Mockito.when(mockTestClass.functionB()).thenReturn(true)
,您需要doReturn(true).when(mockTestClass).functionB()
(同样适用于functionC()
)。只有这样,您的assertEquals("PAssed!", "test Here a test", mockTestClass.functionA())
才会调用实际方法functionA()
并传递。