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

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);. 我不想执行这个方法中的什么,而只需要验证这个方法是否被调用。如何忽略方法执行,或者测试它的最佳方法是什么?


噜噜哒
浏览 81回答 1
1回答

红糖糍粑

有两种方法可以做到这一点:让你的演讲者成为一个mock对象presenter&nbsp;=&nbsp;mock<Presenter>()将此添加到您的测试中doNothing().when(presenter).handleLoginResponse(any());
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java