【发布时间】:2019-08-18 22:36:03
【问题描述】:
我已将我的模拟定义如下:
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。您不能使用 Mockito API 来处理 MockK 模拟。它们是不同的、不兼容的模拟框架。你说你在stackoverflow.com/questions/57548165/… 中理解了这一点,但你一直在尝试将 Mockito 与 MockK 一起使用。你真的明白吗?
标签: java kotlin junit mockito mockk