mockito 错误使用,匹配器的使用无效异常:参数匹配器的使用无效

iszxjhcz  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(193)

我的测试类中有多个mock语句,并且一切都运行良好。我正在为一个DAO mock添加一个新语句,如下所示:

Mockito.when(myDAO.saveOrUpdate(Mockito.any())).thenReturn(Mockito.any());

But I get exception as :

org.mockito.exceptions.misusing.InvalidUseOfMatchersException:  Invalid use of argument matchers!

我使用了参数匹配器而不是原始值,所以我没有混合任何东西。这是什么原因呢?

piv4azn7

piv4azn71#

您在对when或verify的调用之外调用了参数匹配器,这是非法的。
请参阅参数匹配器:
匹配器方法如any()eq()返回匹配器。在内部,它们在堆栈上记录一个匹配器并返回一个伪值(通常为空)。这种实现是由于java编译器强加的静态类型安全。结果是,您不能在verified/stubed方法之外使用any()eq()方法。
另请参阅How do Mockito matchers work?

相关问题