gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 21:46:10 25 4
gpt4 key购买 nike

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

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

运行这个让我:

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

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

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

For more info see javadoc for Matchers class.

如果我这样做的话:

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

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

想法?

最佳答案

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

关于java - Mockito - 预期 0 个匹配器,记录 1 个(InvalidUseOfMatchersException),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11458963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com