我想知道如何模拟在我的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()
。我理解模拟概念,但到目前为止我发现的只是一种模拟本地实例化对象的方法。
谢谢。
答案 0 :(得分:0)
使用@rciovati建议的匕首是一种解决方案。
另一种解决方案可能是使用robolectric影子系统。阴影类就像一个代理,您可以在其中替换方法的实现。可以在Robolectric shadow not working
找到一个示例