【发布时间】:2018-06-27 09:37:26
【问题描述】:
目前我在 Android Dev 中使用 MockK 库(版本 1.8.1)进行单元测试,我的问题是我无法模拟 Patterns.EMAIL_ADDRESS。 每次调用此属性时,测试用例都会抛出 NPE。
我尝试了mockkStatic(Patterns::class),但@Before 方法在应用规则every { Patterns.EMAIL_ADDRESS.pattern() } returns EMAIL_REGEX_STRING 时因NPE 崩溃。
我要测试的类:
public class EmailValidator {
private static final String EMPTY = "";
private final Context context;
@Inject
public EmailValidator(Context context) {
this.context = context;
}
public String isValidEmail(String email) {
if (StringUtils.isEmpty(email)) {
return context.getString(R.string.sign_up_error_email_empty);
}
if (!email.matches(Patterns.EMAIL_ADDRESS.pattern())) {
return context.getString(R.string.sign_up_error_email_validate);
}
return EMPTY;
}}
【问题讨论】:
-
请尝试 1.8.4 版本,因为 1.8.1 几乎没有问题。还可以考虑在此处询问 morr 一般问题,并将 github 问题用于此类错误报告。谢谢
-
@oleksiyp 谢谢你的回答,我换了版本,但问题仍然存在......
-
你找到解决这个问题的方法了吗?