我有这样的方法:
<T extends Entity> boolean putObject(T value);
但是,无法找出如何使用模仿来模拟它吗? anyObject()和any()产生错误:
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Invalid use of argument matchers!
1 matchers expected, 3 recorded.
嘲笑:
when(service.putObject(any(ProcessingTransaction.class))).thenReturn(true);
它如何工作?
解决方法:
您很可能在测试的较早位置(甚至在先前的测试中)对Mockito方法进行了一两个错误的格式调用.当您调用一个使参数匹配器(如any())的Mockito方法时,该匹配器将被添加到内部数据结构中.然后在实际使用时将其删除.
Mockito找到了三个参数匹配器而不是一个,这一事实表明您创建了一些参数匹配器,但没有使用它们.例如,如果在不使用thenReturn()的情况下使用when(…),则可能会发生这种情况.但是还有很多其他情况.
如果您需要帮助以查找确切的错误信息,则需要发布更多的测试代码.