我将模拟定义如下:
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创建的模拟。反之亦然。