Ich fange in android mit Unit-Tests arbeiten ich eine Methode zu testen, haben versucht, die verwendet:android.util.Patterns Unit-Test liefert Nullpointer
android.util.Patterns.EMAIL_ADDRESS.matcher(validEmail).matches()
sollte true zurückgeben, wie ich diese hinzugefügt mein build.gradle
testOptions {
unitTests {
returnDefaultValues = true
}
}
Noch der Test löst eine NullPointerException. Ich habe zwei Fragen: 1- Wie behebe ich das? 2- Sollte ich mein Design überdenken und die Android-Abhängigkeit zu einem Mock-Objekt entfernen.
// @ LoginPresenterTest
@Test
public void clickOnLogin_loginSuccess(){
loginPresenter.login(validEmail, validPassword);
verify(loginView).setLoginButton(false);
}
// LoginPresenter
public void login(String email, String password) {
loginView.setLoginButton(false);
if(!isValid(email, password)){
loginView.setLoginButton(true);
return;
}
}
// Validation
public static boolean isEmailValid(String email){
return !(email.isEmpty() || !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches());
}
Wenn android.utils kommentiert wird, wird dies keine Ausnahme sein.
Ihren Code anzeigen. –
Ich bin nicht dein Typ. Und es kann helfen zu wissen, was eine NPE ist. Jetzt müssen Sie einen Debuggeer verwenden, um herauszufinden, welcher Wert null ist – Jens
Ich stehe vor dem gleichen Problem. Normalerweise müssten Sie das Muster nachahmen, um zu versuchen, dagegen zu spielen. Allerdings kann man das nicht leicht machen. Dieses Tutorial ist ziemlich gut: (http://bytes.babbel.com/de/articles/2016-05-20-tdd-in-android.html) und zeigen Schritt für Schritt, wie es funktioniert –