是否可以在不修改Class类的情况下测试“ innerMethod”的调用?
在“ someCondition”的两种情况下,我都需要在单独的类中进行单元测试。
问题在于该方法无效,因此我无法使用返回类型。唯一的方法是检查是否调用了“ innerMethod”。
我当时想使用Mokito进行验证,但是在运行时创建的对象的方法内部调用了此方法。
任何建议都是最欢迎的。
public class Class {
public void outerMethod(outerObj) {
if(someCondition) {
Object innerObj = new Object();
innerObj.innerMethod(outerObj);
} else {
//other code
}
}
答案 0 :(得分:0)
您可以使用Mockito::times
和Mockito::verify
方法来实现。
测试设置如下:
@InjectMocks
private SomeService service;
@Mock
private SomeHelper helper;
,然后以下列方式测试帮助程序中的某些方法:
@Test
public void testInnerHasBeenCalledOnce() throws Exception {
service.outherMethodName(someParam);
Mockito.verify(helper, Mockito.times(1)).innerMethodName(someParamSecond);
}