Kua*_*kov 6 testing android kotlin mockk
我正在测试一种方法。它两次请求模拟对象的相同功能,但传递了不同的参数。当然,我需要两个不同的答案,但是mockk给了我相同的答案。
every { userRepository.getUser("A") }.answers { userA }
every { userRepository.getUser("B") }.answers { userB }
Run Code Online (Sandbox Code Playgroud)
如何使用mock获得两个不同的结果?
正如问题评论中所述,只需指定参数即可实现这一点。
但如果涉及的条件比较多,通过捕获槽也可以达到同样的效果。
例如,如果我们想返回42用户的 id 是否为1,35否则:
val userSlot = slot<User>()
every { userRepository.saveUser(capture(userSlot)) } answers {
if (userSlot.captured.id == 1) 42
else 35
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4349 次 |
| 最近记录: |