显示为未定义的java Mockito匹配器参数
我试图模拟应用程序的主类中包含的方法。我想测试一下,当所有参数都成功提交时,应用程序调用正确的方法uploadFiles。when-then返回对如下所示:
NrClient nrClient = (NrClient)Mockito.mock(NrClient.class);
Mockito.when(nrClient.uploadFiles("DF49ACBC8", anyList(), "dl")).thenReturn("");
这显示为运行时异常:“类型MainTest的方法anyString()未定义。” 我有以下几种进口产品:
import org.mockito.Mockito;
import org.mockito.Matchers;
那么为什么这个方法没有定义呢?我的执行中有问题吗
我还尝试了anyString()和anyInt(),得到了相同的结果
# 1 楼答案
您应该将其作为编译时错误,而不是异常(除非实际的异常是您有未解决的编译时错误)
仅导入
org.mockito.Matchers
意味着您可以使用名称Matchers
来表示类中任何地方的org.mockito.Matchers
。如果要导入方法,则需要静态通配符导入:或具体方法:
或者您可以在调用代码中限定方法名称:
# 2 楼答案
使用下面的导入
避免使用Matchers类,因为它现在已被弃用,以避免与Hamcrest组织的名称冲突。汉克雷斯特。Matchers类