我有代码,我想测试一个方法,但是只模拟该方法中的特定部分,例如,我想调用doNetworkWork
并完全执行它并且只返回调用中的特定行为to:mRestPR.callNetwork(restCall)
所以如果在通话之前会有一些问题,我希望它成功/失败。
@Test
public void testMethod () {
Services sr = new Services ();
sr.doNetworkWork(new CallackService() {
@Override
public void onComplete(String response ){
//do some work
}});
}
Services.java
public void doNetworkWork (CallackService callback) {
RestCall restCall = new RestCall (RestMethodType.POST, uri, ADD_77, new
RestCall.RestCallListener() {
@Override
public void onComplete(Response response) {
if (callback != null) {
callback.onComplete(response.getMessage());
}
}
});
// some work
// mRestPR – private member
mRestPR.callNetwork(restCall);
}
答案 0 :(得分:0)
我发现很多时候,当你处于两难境地时,这是一个设计缺陷。在这种情况下,doNetworkNow方法可能属于一个单独的对象,然后你就可以正常模拟。
我无法确定,因为您没有为我提供足够的代码来提供良好的建议。