检查调用和未调用时 Mockk 验证失败

Hot*_*otN 4 testing kotlin mockk kotest

我正在尝试使用以下命令验证是否未调用函数:

verify {
    managementService.deleteUser(any()) wasNot Called
}
Run Code Online (Sandbox Code Playgroud)

该验证失败并显示以下消息:

验证失败:第 1 个调用(共 1 个):未调用 ManagementService(#11).deleteUser(any()))。

如果我将验证反转为:

verify {
    managementService.deleteUser(any())
}
Run Code Online (Sandbox Code Playgroud)

我仍然收到相同的失败消息。

ManagementService该通道上还有其他功能wasNot Called也很好。

为什么我的验证会失败wasNot Called,而错误消息显示失败是因为未调用它?为什么反转支票会产生相同的错误?

Kar*_*iel 7

wasNot Called不用于验证是否未进行特定函数调用,而是用于验证从未调用过整个模拟,如下所示:

verify {
    managementService wasNot Called
}
Run Code Online (Sandbox Code Playgroud)

如果您想验证是否deleteUser未使用任何参数进行调用,您可以验证该调用是否恰好发生了零次:

verify(exactly = 0) {
    managementService.deleteUser(any())
}
Run Code Online (Sandbox Code Playgroud)