我想知道如何模拟在我的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) {
...
}
}
我想要的是在我的整个项目中用FakeRequestQueue.addRequestToQueue()
替换所有对RequestQueue.addRequestToQueue()
的调用。我理解mock的概念,但到目前为止,我发现的只是一种本地实例化的mock对象的方法。非常感谢。
使用@rciovati建议的dagger是一种解决方案。
另一种解决方案可能是使用自动电动阴影系统。shadow类就像一个代理,您可以在其中替换方法的实现。一个例子可以在Robolectric阴影不工作