Mockito Matcher参数显示为undefined

a.h*_*die 1 java junit mocking mockito

我正在尝试模拟应用程序的Main类中包含的方法.我想测试一下,当所有参数都成功提交后,应用程序会调用正确的方法uploadFiles.when - thenReturn对如下所示:

NrClient nrClient = (NrClient)Mockito.mock(NrClient.class);
Mockito.when(nrClient.uploadFiles("DF49ACBC8", anyList(), "dl")).thenReturn("");
Run Code Online (Sandbox Code Playgroud)

这显示为运行时异常:"方法anyString()未定义为MainTest类型." 我有进口:

import org.mockito.Mockito;
import org.mockito.Matchers;
Run Code Online (Sandbox Code Playgroud)

那么为什么这个方法不确定呢?我的实施中是否存在问题?

我也尝试过具有相同结果的anyString()和anyInt().

Jon*_*eet 9

您应该将它作为编译时错误,而不是异常(除非实际的异常是您有一个未解决的编译时错误).

只需导入org.mockito.Matchers意味着您可以使用该名称Matchers来表示org.mockito.Matchers类中的任何位置.如果要导入方法,则需要静态通配符导入:

import static org.mockito.Matchers.*;
Run Code Online (Sandbox Code Playgroud)

或具体方法:

import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.anyList;
Run Code Online (Sandbox Code Playgroud)

或者您可以在调用代码中限定方法名称:

Mockito.when(nrClient.uploadFiles("DF49ACBC8", Matchers.anyList(), "dl"))
       .thenReturn("");
Run Code Online (Sandbox Code Playgroud)