我有一个带有setter的课程
class X(){
String a;
void setA(String b){
a=b;
}
}
然后,当我嘲笑时:
X instance;
instance = mock(X.class);
Mockito.when(instance.set(anyString()).thenCallRealMethod();
抱怨
when (java.lang.Void) in Mockito cannot be applied to void
如何为setter调用真正的方法?
答案 0 :(得分:0)
当你模拟方法时,它应该在Mocked对象上而不是真实实例。
@Mock
Instance instance;
@Test
public void testMyMethod(){
doNothing().when(instance).setA(anyString());
//....
}
或者您可以使用@spy来部分模拟真实对象
@Spy
Instance instance = new Instance();
@Test
public void testMyMethod() {
doNothing().when(instance).setA(anyString());
//....
}