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