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类。为了测试这个我运行
presenter.makeLoginRequest();
然后调用onResponse
我使用了从未被调用的verify(presenter).handleLoginResponse(response);
。问题在于它将继续运行handleLoginResponse(response);
中的所有内容。我不想执行此方法中的内容,而只需要验证此方法是否被调用即可。
我该如何忽略方法的执行,或者最好的测试方法是什么?
答案 0 :(得分:1)
有2种方法:
mock
对象presenter = mock<Presenter>()
doNothing().when(presenter).handleLoginResponse(any());