2014-05-07 464 views
0

我試圖存根幾類,但返回的Mockito空總是時的Mockito thenreturn返回null

class test { 
    A mockA = mock(A.class); 
    B mockB = mock(B.class); 

    when(mockA.getB()).thenReturn(mockB); 
    boolean b = mockA.getB() == null //true 
} 

interface A { 
B getB(); 
} 

interface B {} 

什麼可能是什麼原因呢?

+2

什麼是mockA.class? mb它應該是A.class – arghtype

+0

yeap這是一個錯誤,對不起。 –

+1

編輯掉原始問題併發布無效代碼,因爲您的示例沒有幫助。投票結束作爲印刷錯誤。 –

回答

1

試試這個:

class test { 
    A mockA = mock(A.class); 
    B mockB = mock(B.class); 

    when(mockA.getB()).thenReturn(mockB); 
    boolean b = mockA.getB() == null; // Should be false 
} 

interface A { 
    B getB(); 
} 

interface B {} 
+0

對不起,我犯了一個錯誤。我的代碼和你現在完全一樣。 –

+0

仍然返回'null'? –

+0

是的,不幸 –

0

這裏

class test { 
A mockA = mock(A.class); 
B mockB = mock(B.class); 
when(mockA.getB()).thenReturn(mockB); 
boolean b = mockA.getB() == null; 
} 

會的Mockito創建界面B1嘲笑對象(B mockB =模擬(B.class))和你嘲笑mockA.getB ()返回mocked對象(當(mockA.getB())。然後返回(mockB);)所以肯定布爾b = mockA.getB()== null;將假

下面是代碼,它可以幫助你

這裏是代碼,如果它可以幫助您導入org.mockito.Mockito;

public class Test { 

public static void main(String dd[]) { 
    A mockA = Mockito.mock(A.class); 
    B mockB = Mockito.mock(B.class); 

    Mockito.when(mockA.getB()).thenReturn(mockB); 
    boolean b = mockA.getB() == null; // true 
    System.out.println(b); 
} 
} 

interface A { 
B getB(); 
} 
interface B { 
} 
相關問題