Mockito - 预期 0 个匹配器,记录 1 个(InvalidUseOfMatchersException)

Mockito - 0 Matchers Expected, 1 Recorded (InvalidUseOfMatchersException)(Mockito - 预期 0 个匹配器,记录 1 个(InvalidUseOfMatchersException))
本文介绍了Mockito - 预期 0 个匹配器,记录 1 个(InvalidUseOfMatchersException)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

限时送ChatGPT账号..

我正在尝试模拟一些 mongo 类,以便不需要连接(相当标准的东西),但以下代码给我带来了问题:

I'm trying to mock up some mongo classes so that I don't need a connection (fairly standard stuff) but the following code gives me problems:

when(dbCollection.find(isA(DBObject.class))).thenReturn(dbCursor);

运行这个得到我:

org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
参数匹配器的使用无效!
预期 0 个匹配器,记录 1 个:
在 ...GridFileManagerTest.beforeClass(GridFileManagerTest.java:67)

org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Invalid use of argument matchers!
0 matchers expected, 1 recorded:
at ...GridFileManagerTest.beforeClass(GridFileManagerTest.java:67)

如果匹配器与原始值组合,则可能会发生此异常:
//不正确:someMethod(anyObject(), "raw String");

This exception may occur if matchers are combined with raw values:
//incorrect: someMethod(anyObject(), "raw String");

使用匹配器时,所有参数都必须由匹配器提供.
例如:
//正确:
someMethod(anyObject(), eq("String by matcher"));

When using matchers, all arguments have to be provided by matchers.
For example:
//correct:
someMethod(anyObject(), eq("String by matcher"));

有关更多信息,请参阅 Matchers 类的 javadoc.

For more info see javadoc for Matchers class.

如果我这样做:

when(dbCollection.find(mock(DBObject.class))).thenReturn(dbCursor);

它不再有这个问题.这似乎并没有完成我想要的 - 我想在使用 DBObject 类型的对象调用该方法时返回该值.

it no longer has that problem. This doesn't seem to accomplish what I want though - I want to return the value when the method is called with an object of type DBObject.

想法?

推荐答案

我认为你的结果与如果 dbCollection 不是 Mockito-mock (或者你的方法是静态的)会发生的结果兼容或最终).这意味着在无法使用匹配器的地方使用匹配器;因此预期 0 个匹配器,记录 1 个".

I think your results are compatible with the result that would happen if dbCollection is not a Mockito-mock (or your method is static or final). That would mean that a matcher is being used where none can be used; hence the "0 matchers expected, 1 recorded".

这篇关于Mockito - 预期 0 个匹配器,记录 1 个(InvalidUseOfMatchersException)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Sending a keyboard event from java to any application (on-screen-keyboard)(将键盘事件从 java 发送到任何应用程序(屏幕键盘))
How to make JComboBox selected item not changed when scrolling through its popuplist using keyboard(使用键盘滚动其弹出列表时如何使 JComboBox 所选项目不更改)
Capturing keystrokes without focus(在没有焦点的情况下捕获击键)
How can I position a layout right above the android on-screen keyboard?(如何将布局放置在 android 屏幕键盘的正上方?)
How to check for key being held down on startup in Java(如何检查在Java中启动时按住的键)
Android - Get keyboard key press(Android - 获取键盘按键)