我将模拟定义如下:

private val dal = mockk<UserDal> {
    every { insert(any()) } returnsArgument 0
}

然后,我试图像这样测试它:
@Test
fun test() {
    userService.registerUser(userJohn)

    verify(dal).insert(check {
        assertEquals(it.firstName, "John")
    })
}

这将引发异常:
org.mockito.exceptions.misusing.NotAMockException:
Argument passed to verify() is of type UserDal and is not a mock!
Make sure you place the parenthesis correctly!

我不明白UserDal显然不是假货,这是怎么说呢!此代码有什么问题?如何验证参数字段?

最佳答案

Mockito和MockK是两个不同的,不兼容的模拟框架。您不能使用Mockito API存根或验证MockK创建的模拟。反之亦然。

07-26 08:48