我正在尝试使用Mockito的argThat API:
verify(mockService).methodA(argThat((List ids, int b) -> ids.get(0).equals("123")));
mockService的methodA
具有两个参数:List和原始整数。
但这给我一个错误:
“ lambda表达式中的参数类型不兼容”。
原因是ArgumentMatcher的matchs方法仅接受一个参数。
那我该如何验证这种情况?
答案 0 :(得分:2)
对于每个输入,您应该使用argThat
通配符:
verify(mockService).methodA(argThat((List ids) -> ids.get(0).equals("123"))
, argThat((int b) -> b < 1);
我还建议您使用@ArgumentCaptor
,它是argThat
的替代方法,并使该自定义匹配更加清晰:javadoc。尤其是如果您必须在同一条条件语句中同时使用这两个参数。