Я пытаюсь смоделировать некоторые классы монго, чтобы мне не нужно было соединение (довольно стандартные вещи ), но следующий код вызывает у меня проблемы:
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.
Мысли?