gpt4 book ai didi

android - 如何根据 mockk 中传递的参数从同一函数返回两个不同的模拟?

转载 作者:行者123 更新时间:2023-12-02 13:37:16 27 4
gpt4 key购买 nike

我正在测试一种方法。它两次请求模拟对象的相同功能,但传递的参数不同。当然,我需要两个不同的答案,但 mockk 为我提供了相同的答案。

every { userRepository.getUser("A") }.answers { userA }
every { userRepository.getUser("B") }.answers { userB }

如何使用 mockk 获得两个不同的结果?

最佳答案

正如问题评论中所述,这可以通过指定参数简单地实现。

但是,如果条件比较复杂,同样可以通过捕获槽来实现。

例如,如果我们想在用户 ID 为 1 时返回 42,否则返回 35:

val userSlot = slot<User>()
every { userRepository.saveUser(capture(userSlot)) } answers {
if (userSlot.captured.id == 1) 42
else 35
}

关于android - 如何根据 mockk 中传递的参数从同一函数返回两个不同的模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53550145/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com