こんにちは私はmockitoを使用しようとしました。Mockitoエラー:ただし、このモックと正確に1つの対話がありました。
しかし、私はこの次のエラーを得た:ここ
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()
における電子メールの利用者を嘲笑が、私はまだそのエラーメッセージが表示されます。ここで
は私のプレゼンターの実装です:
@Override
public void validateInput(User user) {
if (!validator.validateEmail(user.getEmailAddress())) {
view.showEmailError();
} else if (validator.validatePassword(user.getPassword())) {
view.showPasswordError();
}
}
私が行方不明ですか?数分で再び探索した後
が
テストメソッドと実際のメソッドでオブジェクト* loginView *参照をデバッグしてチェックできますか?それらが異なっていれば、検証に失敗するのは正しいです。 – Raf
あなたの問題に対する答えがありがとうございます!回答者がソート済みであることを知りやすくするために、将来の読者があなたの解決策を見つけるためには、あなたの解決策を編集して[自己回答]にしてください(https://stackoverflow.com/help/self-answer)あなたは後で受け入れることができます。 –