我正在测试一种方法。
它两次请求模拟对象的相同功能,但传递了不同的参数。自然,我需要两个不同的答案,但是ockock给我的答案都是相同的。
every { userRepository.getUser("A") }.answers { userA }
every { userRepository.getUser("B") }.answers { userB }
如何使用Mockk获得两个不同的结果?
答案 0 :(得分:1)
如对问题的评论中所述,只需指定参数即可实现。
但是,如果条件更加复杂,则可以通过捕获插槽来实现同一目的。
例如,如果我们想返回42
且用户ID为1
,否则返回35
,则返回
val userSlot = slot<User>()
every { userRepository.saveUser(capture(userSlot)) } answers {
if (userSlot.captured.id == 1) 42
else 35
}