java - NPE 使用 mockito 进行单元测试

标签 java android unit-testing mockito

我尝试对下面的一些 util 类进行单元测试:

public final class WalletInputValidationUtils {
private WalletInputValidationUtils() {
}

public static boolean isEmailValid(CharSequence email) {
    return Patterns.EMAIL_ADDRESS.matcher(email).matches();
}
}

这是测试类

@RunWith(PowerMockRunner.class)
public class WalletInputValidationUtilsTest {
private static final CharSequence DUMMY_EMAIL = "email@gmail.com";

@Test
public void isEmailValidTest1() {
    Assert.assertTrue(isEmailValid(DUMMY_EMAIL));
}
}

我在这一行得到了空指针异常

return Patterns.EMAIL_ADDRESS.matcher(email).matches();

这是堆栈跟踪

java.lang.NullPointerException
at kudo.mobile.app.wallet.backwardcompatibility.WalletInputValidationUtils.isEmailValid(WalletInputValidationUtils.java:14)
at kudo.mobile.app.wallet.backwardcompatibility.WalletInputValidationUtilsTest.isEmailValidTest(WalletInputValidationUtilsTest.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:68)
at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:316)
at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:89)
at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:97)
at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl.java:300)
at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTestInSuper(PowerMockJUnit47RunnerDelegateImpl.java:131)
at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunne

谁能帮我解决这个问题?谢谢

最佳答案

刚刚通过从 Patterns.EMAIL_ADRESS.matcher() 切换到 PatternsCompat.EMAIL_ADRESS.matcher() 解决了这个问题。这应该有效。

关于java - NPE 使用 mockito 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52638565/

相关文章:

android - BitmapFactory.decodeFile();

java - 从 asyncTask 中的异常访问 View 时出现问题

javascript - phonegap 插件的自动测试

java - 将图像保存到外部存储(如果可用)

java - 将 JLabel 放置在彼此下方

android sqlite onUpgrade 不工作

python - import 在 pytest 中运行两次测试

java - 如何使用 java 安全地验证服务器套接字?

java - 如何从java中的链接列表中的节点检索对象的内容

由于动画中的 query() 调用导致 Angular 单元测试失败