gpt4 book ai didi

java - 使用 Mockito 模拟方法行为时以任何顺序匹配列表

转载 作者:搜寻专家 更新时间:2023-10-31 08:18:53 26 4
gpt4 key购买 nike

我有一个使用 Mockito 的测试有一个非常奇怪的行为:它在调试中工作但在正常运行时失败。经过一些调查,我意识到这是因为我在模拟方法行为,传递了要匹配的元素列表。但由于某种原因,列表中的顺序并不总是相同,所以它不匹配,我希望我的模拟返回的内容没有返回,因为 2 个列表不“等于”

 when(mockStatusCalculatorService.calculateStatus(Arrays.asList(IN_PROGRESS, ABANDONNED,EXPIRED))).thenReturn(ConsolidatedStatus.EXPIRED);

在我的例子中,要匹配的元素顺序并不重要。那么在配置我的 mock 时如何指定它呢?

最佳答案

为较新版本的 Mockito 和 Java 8 添加答案

when(
mock.method(argThat(t -> t.containsAll(Arrays.asList(IN_PROGRESS, ABANDONED, EXPIRED))))
).thenReturn(myValue);

关于java - 使用 Mockito 模拟方法行为时以任何顺序匹配列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40883990/

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