我刚刚开始使用 Mockk 在 Kotlin 中进行单元测试。我正在尝试测试以下功能:
fun evaluatePredicate(regEx: String, passwordInserted: String) : Boolean {
return passwordInserted.matches(regEx.toRegex())
}
我的测试如下所示:
@Test
fun evaluatePredicate_shouldContainLowerCase_trueExpected() {
//given
val regEx = ".*[a-z]+.*" //lower case
val password = "password"
every { password.matches(regEx.toRegex()) } returns true
every { SUT.evaluatePredicate(regEx, password) } returns true
//when
val evaluate = password.matches(regEx.toRegex())
val result = SUT.evaluatePredicate(regEx, password)
//then
assertEquals(evaluate, result)
}
但我得到:
io.mockk.MockKException: Missing calls inside every { ... } block.
在线:
every { password.matches(regEx.toRegex()) } returns true
我尝试使用 Mockk Matcherany()
代替,matches(regEx.toRegex())
但没有任何改变。
我不确定我是否在这里使用了正确的工具来完成这项工作。欢迎任何建议。