使用 JUnit 或 Mockito 测试是否从 class 调用另一个方法

Test if another method is called from a class using JUnit or Mockito

我有一个class这样的

public class LoginPresImpl implements LoginAPIInterface.LoginDataListener, LoginAPIInterface.LoginPresenter{
    LoginAPIInterface.LoginView loginView;
    LoginAPIInterface.LoginDataInteractor loginDataInteractor;

    public  LoginPresImpl(LoginAPIInterface.LoginView loginView) {
        this.loginView = loginView;
        loginDataInteractor=new LoginDataModel(this);
    }

    @Override
    public void getLoginUpdateData(String username, String password,String registrationToken) {
        loginDataInteractor.getLoginData(username,password,registrationToken);
    }

}

我想测试是否调用

getLoginUpdateData()

会调用loginDataInteractor的getLoginDate()方法。 我创建了一个这样的测试 class

public class LoginPresImplTest {
    LoginAPIInterface.LoginDataInteractor loginDataInteractorMock;
    LoginAPIInterface.LoginView loginViewMock;
    LoginPresImpl loginPres;
    @Before
    public void setUp(){
        loginDataInteractorMock = Mockito.mock(LoginAPIInterface.LoginDataInteractor.class);
        loginViewMock = Mockito.mock(LoginAPIInterface.LoginView.class);
        loginPres = Mockito.spy(LoginPresImpl.class);


    }
    @Test
    public void getLoginUpdateData() {
        loginPres.getLoginUpdateData("01","","");
        verify(loginPres).getLoginUpdateData("01","","");

    }

但我不知道如何检查是否调用

getLoginUpdateData()

最终会打电话给

loginDataInteractor.getLoginData()

方法。我如何使用 JUnit 或 Mockito 对此进行测试。

I want to test if calling

 getLoginUpdateData()

will call the getLoginDate() method of loginDataInteractor.

loginDataInteractor 是您展示的待测代码(剪切)的依赖关系

UnitTest 中,您仅验证切割 的行为 。您没有验证依赖关系的行为。他们有自己的单元测试。