2015-04-02 48 views
1

我想知道如何模擬在我的android項目中許多地方調用的方法。比如我有這個類:如何用mockito替換所有項目中的方法

public class RequestQueue { 

    protected RequestQueue mRequestQueue; 
    protected Context mCtx; 

    public RequestQueue(Context context) { 
     ... 
    } 

    public void addRequestToQueue(BaseRequest request) { 
     ... 
    } 
} 

這一個:

public class FakeRequestQueue extends RequestQueue { 

    public FakeRequestQueue(Context context, int expectedRetCode) { 
     super(context); 
     ... 
    } 

    @Override 
    public void addRequestToQueue(BaseRequest request) { 
     ... 
    } 
} 

我想是由FakeRequestQueue.addRequestToQueue()在我的整個項目所有的呼叫替換到RequestQueue.addRequestToQueue()。我理解這個模擬概念,但到目前爲止我發現的只是一種模擬本地實例化對象的方法。 謝謝。

+1

你可以考慮引入一個依賴注入框架,比如Dagger。 – rciovati 2015-04-02 10:19:28

+0

你能再解釋一下你的問題嗎?我不明白你到底需要什麼..你是什麼意思「替換所有電話」? Mockito不會更換方法。 – akcasoy 2015-04-08 21:56:15

回答

0

使用@rciovati建議的匕首是一種解決方案。

另一種解決方案可能是使用robolectric影子系統。影子類就像代理,可以替換方法的實現。一個例子可以在Robolectric shadow not working

相關問題