我尝试对下面的一些 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/