Whi*_*zil 5 java junit mockito kotlin mockk
我试图在我的模拟对象上使用 Mockito,它应该始终返回作为参数传入的相同对象。我试过这样做:
private val dal = mockk<UserDal> {
Mockito.`when`(insert(any())).thenAnswer { doAnswer { i -> i.arguments[0] } }
}
Run Code Online (Sandbox Code Playgroud)
但是,这条线总是失败:
io.mockk.MockKException: no answer found for: UserDal(#1).insert(null)
Run Code Online (Sandbox Code Playgroud)
该insert(user: User)方法不null作为参数接受(显然User不是可空类型)。
如何使该insert()方法始终返回它作为参数接收的相同对象?
当您使用MockK 时,您不应该使用Mockito。
仅使用MockK您可以通过以下方式实现相同的效果:
val dal = mockk<UserDal> {
every { insert(any()) } returnsArgument 0
}
Run Code Online (Sandbox Code Playgroud)
如果你打算使用Mockito,你应该删除MockK并使用mockito-kotlin:
val dal = mock<UserDal> {
on { insert(any()) } doAnswer { it.arguments[0] }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2211 次 |
| 最近记录: |