使用 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 中,您仅验证切割 的行为 。您没有验证依赖关系的行为。他们有自己的单元测试。
我有一个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 中,您仅验证切割 的行为 。您没有验证依赖关系的行为。他们有自己的单元测试。