我是测试的新手。我尝试了这个,但有一个例外。
@Mock
private Context context;
...
when(service.getResult(any(), context)).thenReturn(new ArrayList<>());
例外:
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
参数匹配器的使用无效!
2匹配预期,1记录:
答案 0 :(得分:3)
Mockito.any()
是Mockito参数匹配器。当您在模拟记录中定义的其中一个参数中指定它时,您必须对所有参数使用参数匹配器
Mockito.eq(T)
是将任何参数转换为参数匹配器的方法
所以这应该没问题:
@Mock
private Context context;
@Mock
private Service service;
...
when(service.getResult(any(), eq(context)).thenReturn(new ArrayList<>());
答案 1 :(得分:1)
有很多次问过类似的问题。我认为最好的答案是:
Mockito要求您在存根方法调用时仅使用原始值或仅使用匹配器。完整的例外(这里没有发布)肯定会解释一切。