【发布时间】:2017-05-18 10:31:12
【问题描述】:
我是新来的测试,我在测试下面的代码时遇到了这个问题,给出了空指针异常。
这是我的 CommonFunctions 类,其中包含电子邮件验证方法
源文件----->
import android.util.Patterns;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CommonFunctions {
private Context context;
public CommonFunctions(Context context) {
this.context = context;
}
//to check whether email is valid or not
public boolean isEmailValid(String email) {
Pattern pattern = Patterns.EMAIL_ADDRESS;
Matcher matcher = pattern.matcher(email);
return matcher.matches();
}
}
“Patterns.EMAIL_ADDRESS”来自 android.util.Patterns EMAIL_ADDRESS 是静态最终字段
我使用 Junit 和 Mockito 的测试代码
import android.content.Context;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.*;
@RunWith(MockitoJUnitRunner.class)
public class CommonFunctionsTest {
@Mock
Context mMockContext;
@Test
public void isEmailValid() throws Exception {
CommonFunctions commonFunctions = new CommonFunctions(mMockContext);
assertThat(commonFunctions.isEmailValid("name@gmail.com"), is(true));
}
}
错误:java.lang.NullPointerException 在这一行:
Matcher matcher = pattern.matcher(email);
CommonFunction 类的 isEmailValid 方法中
“模式”仍然为空
这意味着在测试时我无法从 android.util.Patterns 访问“Patterns.EMAIL_ADDRESS”,EMAIL_ADDRESS 是静态最终字段
提前致谢
【问题讨论】: