MockK: capture () перехватывает вызовы, которые не совпадают с полным списком параметров в прилагаемой verify () - PullRequest
1 голос
/ 09 января 2020

В приведенном ниже примере я ожидаю, что capture () будет задействован только тогда, когда полный список параметров для verify () совпадает, однако, похоже, верно обратное.

Предназначено ли это поведение?

interface ExternalService {
    fun doIt(doCapture: Boolean, captureCandidate: String)
}

class VerifyCaptureDemo {

    val externalService: ExternalService = mockk(relaxed = true)

    @Test
    fun demo() {
        externalService.doIt(false, "noCaptureExpected")
        externalService.doIt(true, "captureThis")

        val capturedValues = mutableListOf<String>()
        verify(exactly=1) { externalService.doIt(false, any()) }
        verify(exactly=1) { externalService.doIt(true, capture(capturedValues)) }
        assertEquals(1, capturedValues.size) //java.lang.AssertionError:: Expected: 1, Actual: 2
    }

}
...