目前我正在使用 MockK 库(版本 1.8.1)在 Android Dev 中进行单元测试,我的问题是我无法模拟 Patterns.EMAIL_ADDRESS。每次调用此属性时,测试用例都会抛出 NPE。
我试过mockkStatic(Patterns::class)
了,但 @Before 方法在应用规则时会因 NPE 而崩溃every { Patterns.EMAIL_ADDRESS.pattern() } returns EMAIL_REGEX_STRING
。
我正在尝试测试的课程:
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;
}}