Mockk in Kotlin:传递来验证的参数不是模拟

时间:2019-08-18 22:36:03

标签: java kotlin junit mockito mockk

我的模拟定义如下:

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不是嘲笑,而是明显的嘲笑!此代码有什么问题?如何验证参数字段?

1 个答案:

答案 0 :(得分:3)

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