编程语言
首页 > 编程语言> > java-如何用arg’T值’模拟方法?

java-如何用arg’T值’模拟方法?

作者:互联网

我有这样的方法:

<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(…),则可能会发生这种情况.但是还有很多其他情况.

如果您需要帮助以查找确切的错误信息,则需要发布更多的测试代码.

标签:mocking,mockito,java
来源: https://codeday.me/bug/20191127/2076703.html