2016-09-07 85 views
0

我有一类与二传手的Mockito无效二传手

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

我怎么能说一个二传手的真正方法?

回答

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()); 
//.... 
} 
+0

是的,我这样做。我纠正了。 –

+0

为什么没有()而不是doCallRealMethod()? –