如何使用mockito替换方法调用所有项目

时间:2015-04-02 06:53:34

标签: android mockito robolectric android-testing

我想知道如何模拟在我的android项目中很多地方调用的方法。例如,我有这个课程:

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) {
        ...
    }
}

我想要的是在我的整个项目中将所有对RequestQueue.addRequestToQueue()的调用替换为FakeRequestQueue.addRequestToQueue()。我理解模拟概念,但到目前为止我发现的只是一种模拟本地实例化对象的方法。 谢谢。

1 个答案:

答案 0 :(得分:0)

使用@rciovati建议的匕首是一种解决方案。

另一种解决方案可能是使用robolectric影子系统。阴影类就像一个代理,您可以在其中替换方法的实现。可以在Robolectric shadow not working

找到一个示例