Kotlin Mockito 总是 return 对象作为参数传递
Kotlin Mockito always return object passed as an argument
我正在尝试在我的模拟对象上使用 Mockito,这样它应该始终 return 与作为参数传入的对象完全相同。我试过这样做:
private val dal = mockk<UserDal> {
Mockito.`when`(insert(any())).thenAnswer { doAnswer { i -> i.arguments[0] } }
}
然而,这一行总是失败:
io.mockk.MockKException: no answer found for: UserDal(#1).insert(null)
insert(user: User)
方法不接受 null
作为参数(显然 User
不是可空类型)。
如何使 insert()
方法始终 return 接收到的相同对象作为参数?
当您使用 MockK 时,您不应使用 Mockito.
仅使用 MockK 你可以实现同样的效果:
val dal = mockk<UserDal> {
every { insert(any()) } returnsArgument 0
}
如果您打算使用 Mockito,您应该删除 MockK 并使用 mockito-kotlin:
val dal = mock<UserDal> {
on { insert(any()) } doAnswer { it.arguments[0] }
}
我正在尝试在我的模拟对象上使用 Mockito,这样它应该始终 return 与作为参数传入的对象完全相同。我试过这样做:
private val dal = mockk<UserDal> {
Mockito.`when`(insert(any())).thenAnswer { doAnswer { i -> i.arguments[0] } }
}
然而,这一行总是失败:
io.mockk.MockKException: no answer found for: UserDal(#1).insert(null)
insert(user: User)
方法不接受 null
作为参数(显然 User
不是可空类型)。
如何使 insert()
方法始终 return 接收到的相同对象作为参数?
当您使用 MockK 时,您不应使用 Mockito.
仅使用 MockK 你可以实现同样的效果:
val dal = mockk<UserDal> {
every { insert(any()) } returnsArgument 0
}
如果您打算使用 Mockito,您应该删除 MockK 并使用 mockito-kotlin:
val dal = mock<UserDal> {
on { insert(any()) } doAnswer { it.arguments[0] }
}