gpt4 book ai didi

java - Mockito:argThat 用于采用多个参数的方法

转载 作者:行者123 更新时间:2023-12-02 01:27:47 24 4
gpt4 key购买 nike

我正在尝试使用 Mockito 的 argThat API:

verify(mockService).methodA(argThat((List ids, int b) -> ids.get(0).equals("123")));

mockService 有 methodA,它接受两个参数:一个 List 和一个原始整数。

但这给了我一个错误:

"Imcompatible parameter types in lambda expression".

原因是 ArgumentMatcher 的 matches 方法只接受一个参数。

那么对于这样的场景我该如何进行验证呢?

最佳答案

您应该为每个输入使用 argThat 通配符:

verify(mockService).methodA(argThat((List ids) -> ids.get(0).equals("123"))
, argThat((int b) -> b < 1);

我还建议您使用 @ArgumentCaptor,它是 argThat 的替代品,并使自定义匹配更加清晰:javadoc 。特别是如果您必须在同一个条件语句中使用这两个参数。

关于java - Mockito:argThat 用于采用多个参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56612781/

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