【发布时间】:2018-04-18 14:39:16
【问题描述】:
我有一个方法需要测试:
fun validate(email: String): Result {
return if (android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
Result(true)
} else {
Result(false, "error")
}
}
但它会返回 NullPointerException 错误,因为需要模拟 Patterns.email。
现在我手动创建并测试 Pattern 但无法测试上面的方法。
object Patterns {
private const val EMAIL_PATTERN = ("^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" +
"[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$")
val EMAIL_ADDRESS: Pattern = Pattern.compile(EMAIL_PATTERN)
}
知道如何使用 Mockito 或 MockK 来做到这一点,这样我就可以整体测试这个方法,而不是在测试中手动创建模式。
【问题讨论】:
标签: android kotlin mockito powermock mockk