我開始在Android的 單元測試,我已經試圖測試使用的方法工作:android.util.Patterns單元測試返回NullPointerException異常
android.util.Patterns.EMAIL_ADDRESS.matcher(validEmail).matches()
,因爲我加入這應該返回true我的build.gradle
testOptions {
unitTests {
returnDefaultValues = true
}
}
仍然測試拋出一個NullPointerException。
我有兩個問題: 1-我該如何解決這個問題?我應該重新考慮我的設計並將android依賴關係移除到模擬對象上。
// @ 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());
}
當android.utills被評論時,它們也不會例外。
顯示您的代碼。 –
我不是你的傢伙。這可能有助於瞭解NPE是什麼。現在你必須使用一個調試器來找出什麼值爲null – Jens
我正面臨同樣的問題。你通常需要嘲笑該模式,以嘗試與之匹配。但是你不能輕易做到這一點。 本教程相當不錯:(http://bytes.babbel.com/en/articles/2016-05-20-tdd-in-android.html)並逐步展示如何讓它工作 –