public void makeLoginRequest(){
view.log(sessionHandler.getEncodedCredentials());
Call loginCall = apiService.getLoginInfo("application/json", "application/json"
, "SPT", "Android", sessionHandler.getEncodedCredentials());
loginCall.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
handleLoginResponse(response);
}
@Override
public void onFailure(Call<User> call, Throwable t) {
handleLoginFailure(t);
}
});
}
我想,以测试这种方法使用JUnit和的Mockito。这种方法属于在演示者类。为了测试这个我跑presenter.makeLoginRequest();
那么当onResponse叫我用verify(presenter).handleLoginResponse(response);
永远也不会被调用。问题是,它会继续运行在handleLoginResponse(response);
一切。我不想在此方法执行什么,而只需要验证此方法被调用。我怎么能够无视法的执行,或者说是测试的最佳方式?
有这样做的2种方式:
mock
对象presenter = mock<Presenter>()
doNothing().when(presenter).handleLoginResponse(any());