2014-07-23 85 views
0

我是Mockito和單元測試的新手,因此這裏有一個基本問題。鑑於此等級:Mockito - 在另一個方法中存根方法調用

public class A{ 
    private B b; 

    public A(){ 
    b = new B(); 
    } 

    private void test(){ 
    b.some_other_method(); 
    } 
} 

這不會成功將這個鏈條斷鏈嗎?

a = Mockito.mock(A.class); 
b = Mockito.mock(B.class); 

Mockito.when(b.some_other_method()).thenReturn("testing"); 
a.test(); 

謝謝!

回答

2

這將無法正常工作,因爲您測試中的b與您A類中的b不同。

還要記住,你不應該嘲笑你的課堂。我寫了一個總結in another answer,但我只想說,你應該使用真正 A和測試一個模擬 B中的應該測試A.

您可以將您的更換乙實例這種方式,例如:

public class A{ 
    private B b; 

    public A(){ 
    b = new B(); 
    } 

    /** Package private constructor used for testing. */ 
    A(B b){ 
    this.b = b; 
    } 

    private void test(){ 
    b.some_other_method(); 
    } 
} 

此時你只需要調用new A(b)在您的測試,指的是你的嘲笑乙實例。

相關問題