Java Junit忽略方法模拟
我已经在一个现有类中创建了一个Junit测试用例,我想忽略几个模拟Java Junit忽略方法模拟,java,junit,Java,Junit,我已经在一个现有类中创建了一个Junit测试用例,我想忽略几个模拟 @InjectMock private HomeService homeService; @Mock private HomeUtility homeUtility; @Test public void testIsFilterWorkedTrue() { homeService.getData(); } HomeService.java class HomeService { @Autowired
@InjectMock
private HomeService homeService;
@Mock
private HomeUtility homeUtility;
@Test
public void testIsFilterWorkedTrue() {
homeService.getData();
}
HomeService.java
class HomeService {
@Autowired
private HomeUtility homeUtility;
public [RETURN_TYPE] getData() {
// call mocked method
output = mockedMethodcall();
test = homeUtility.callMethod(output);
return test;
}
}
在上面的代码中,对于homeUtility.callMethod(输出)代码>,我不希望它被模仿,应该进入方法内部。我必须使用
@Mock
private HomeUtility homeUtility;
因为它也被用于其他方法。如何忽略它您可以使用然后调用realmethod
来确保为该对象调用实际方法
@InjectMock
private HomeService homeService;
@Mock
private HomeUtility homeUtility;
@Test
public void testIsFilterWorkedTrue() {
when( homeUtility.callMethod(anyString()).thenCallRealMethod() )
homeService.getData();
}
您也可以为此使用spy
。更多阅读: