【发布时间】:2016-05-18 14:33:20
【问题描述】:
我正在编写一个单元测试来检查电子邮件验证逻辑。运行测试时逻辑抛出空指针异常。但它适用于模拟器。有人可以帮我解决这个问题吗?
public static String validate(String email, String password) {
if (email == null || email.isEmpty() || !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
return "Enter valid email address";
}
if (password.isEmpty() || password.length() < 4) {
return "Password should be between 4 and 10 alphanumeric characters";
}
return null;
}
下面是我的单元测试。
@Test
public void validateShouldReturnMessageIfYouPassAnInvalidEmail() throws Exception {
String validateMessage = LoginService.validate("abcdef", "password");
assertEquals("Enter valid email address", validateMessage);
}
我得到的错误是,
java.lang.NullPointerException
at com.tryout.hemanth.expensetracker.service.LoginService.validate(LoginService.java:11)
【问题讨论】:
-
LoginService里面是什么? -
@ShreeKrishna 我有一个验证方法来进行验证。因为我添加了有问题的登录信息。
-
向我们展示您的方法 LoginService.validate
-
如果这是您获得 NPE 的那一行,则看起来
android.util.Patterns.EMAIL_ADDRESS是null。 -
@Axel 是的。我不能在单元测试中使用 android.util 吗?
标签: java android android-studio junit junit4