为了账号安全,请及时绑定邮箱和手机立即绑定

如何防止一个方法在测试中调用另一个方法?

如何防止一个方法在测试中调用另一个方法?

噜噜哒 2022-06-15 10:44:06
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个赞

有两种方法可以做到这一点:

  1. 让你的演讲者成为一个mock对象

presenter = mock<Presenter>()
  1. 将此添加到您的测试中

doNothing().when(presenter).handleLoginResponse(any());


查看完整回答
反对 回复 2022-06-15
  • 1 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信