Здравствуйте, я пытаюсь использовать mockito, чтобы проверить пароль пользователя, если он недействителен, я хочу убедиться, что он показывает сообщение об ошибке.
Но я получил следующую ошибку:
Wanted but not invoked:
loginView.showPasswordError();
-> at android.fanjavaid.com.tdd_android_login.LoginActivityTest.invalidPassword_notLoggedIn_showPasswordError(LoginActivityTest.java:84)
However, there was exactly 1 interaction with this mock:
loginView.showEmailError();
-> at android.fanjavaid.com.tdd_android_login.presenter.LoginPresenterImpl.validateInput(LoginPresenterImpl.java:23)
Вот мой метод тестирования:
@Test
public void invalidEmail_notLoggedIn_showEmailError() {
LoginPresenter presenter = new LoginPresenterImpl(loginView, validator);
presenter.validateInput(user);
verify(loginView).showEmailError();
}
@Test
public void invalidPassword_notLoggedIn_showPasswordError() {
when(user.getEmailAddress()).thenReturn("[email protected]");
LoginPresenter presenter = new LoginPresenterImpl(loginView, validator);
presenter.validateInput(user);
verify(loginView).showPasswordError();
}
Я уже издеваюсь над пользователем электронной почты в invalidPassword_notLoggedIn_showPasswordError()
с правильным вводом, но все равно получаю это сообщение об ошибке.
Вот моя реализация Presenter:
@Override
public void validateInput(User user) {
if (!validator.validateEmail(user.getEmailAddress())) {
view.showEmailError();
} else if (validator.validatePassword(user.getPassword())) {
view.showPasswordError();
}
}
Что мне не хватает?
Спасибо