В приведенном ниже примере я ожидаю, что 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
}
}