2016-08-01 17 views
5

Zaczynam pracować z testów jednostkowych w Android Ja próbuje przetestować metodę, która wykorzystuje:Test android.util.Patterns Jednostka zwraca NullPointerException

android.util.Patterns.EMAIL_ADDRESS.matcher(validEmail).matches() 

powinien powrócić prawda jak dodałem to w mój build.gradle

Nadal test generuje wyjątek NullPointerException.

Mam dwa pytania: 1- Jak to naprawić? 2- Czy powinienem ponownie rozważyć mój projekt i usunąć zależność androida od fałszywego obiektu.

// @ 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()); 
} 

Gdy komentarz android.utills jest komentowany, nie będzie tu wyjątkiem.

+0

pokazać kod. –

+1

Nie jestem twoim kolesiem. I może pomóc dowiedzieć się, czym jest NPE. Teraz musisz użyć debugera, aby dowiedzieć się, która wartość jest pusta. – Jens

+1

Mam do czynienia z tym samym problemem. Zazwyczaj będziesz musiał kpić z Wzoru, aby spróbować z nim walczyć. Jednak nie możesz tego łatwo zrobić. Ten samouczek jest całkiem niezły: (http://bytes.babbel.com/en/articles/2016-05-20-tdd-in-android.html) i pokaż krok po kroku, jak go uzyskać działa –

Odpowiedz

1

static methods nie są wyśmiewane. Musisz użyć trochę szyderczej architektury, takiej jak mockito lub powermock.

+0

shouldn ' t zawsze to zwróci true http://pl.tools.android.com/tech-docs/unit-testing-support Ostatnia sekcja –

Powiązane problemy