InvalidUseOfMatchersException:参数匹配器的使用无效

kam*_*boj 2 testing mockito

我是测试新手。我试过这个,但有一个例外。

@Mock
private Context context;    
...
when(service.getResult(any(), context)).thenReturn(new ArrayList<>());
Run Code Online (Sandbox Code Playgroud)

例外:

org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
参数匹配器的使用无效!
预计 2 个匹配者,1 个记录:

dav*_*xxx 6

Mockito.any()是一个 Mockito 参数匹配器。当您在模拟记录中定义的参数之一中指定它时,您必须对所有参数使用参数匹配器。
Mockito.eq(T)是将任何参数转换为参数匹配器的方法。
所以这应该没问题:

@Mock
private Context context;    

@Mock
private Service service; 
...
when(service.getResult(any(), eq(context)).thenReturn(new ArrayList<>());
Run Code Online (Sandbox Code Playgroud)