2

我刚刚开始使用 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())但没有任何改变。

我不确定我是否在这里使用了正确的工具来完成这项工作。欢迎任何建议。

4

0 回答 0