Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在测试一种方法。它两次请求模拟对象的相同功能,但传递的参数不同。自然,我需要两个不同的答案,但 mockk 给了我相同的答案。
every { userRepository.getUser("A") }.answers { userA } every { userRepository.getUser("B") }.answers { userB }
如何使用 mockk 获得两个不同的结果?
正如对问题的评论中所述,这可以通过指定参数来实现。
但是,如果条件涉及更多,则可以通过捕获槽来实现相同的目的。
例如,如果我们想42在用户 id 为时返回1,35否则:
42
1
35
val userSlot = slot<User>() every { userRepository.saveUser(capture(userSlot)) } answers { if (userSlot.captured.id == 1) 42 else 35 }