Mockito虚空二传手

时间:2016-09-07 08:34:29

标签: mockito void setter

我有一个带有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调用真正的方法?

1 个答案:

答案 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());
 //....
}