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);. 我不想执行这个方法中的什么,而只需要验证这个方法是否被调用。如何忽略方法执行,或者测试它的最佳方法是什么?
1 回答
红糖糍粑
TA贡献1815条经验 获得超6个赞
有两种方法可以做到这一点:
让你的演讲者成为一个
mock
对象
presenter = mock<Presenter>()
将此添加到您的测试中
doNothing().when(presenter).handleLoginResponse(any());
添加回答
举报
0/150
提交
取消