Próbuję mock up niektórych klas Mongo tak, że nie potrzebują połączenia (dość standardowe rzeczy), ale następujący kod daje mi problemy:Mockito - 0 dopasowujących oczekiwaniami 1 rejestrowana (InvalidUseOfMatchersException)
when(dbCollection.find(isA(DBObject.class))).thenReturn(dbCursor);
Running to get mnie:
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Nieprawidłowe użycie dopasowujących argumentów!
0 dopasowujących oczekiwane, 1 zarejestrowane:
w ... GridFileManagerTest.beforeClass (GridFileManagerTest.java:67)Wyjątek może wystąpić, jeśli dopasowujące są połączone z wartościami wyjściowymi:
// prawidłowe: SomeMethod (anyObject(), "raw String");Podczas korzystania z dopasowań wszystkie argumenty muszą być dostarczone przez osoby dopasowujące.
Na przykład:
// poprawne:
someMethod (anyObject(), eq ("String by matcher"));Aby uzyskać więcej informacji, zobacz javadoc dla klasy Matchers.
Gdybym miał zrobić to jednak:
when(dbCollection.find(mock(DBObject.class))).thenReturn(dbCursor);
już nie ma tego problemu. Wydaje się, że nie osiąga to, co chcę - chcę zwrócić wartość, gdy metoda jest wywoływana z obiektem typu DBObject.
Myśli?
Zobacz część "[EDYCJA]" pierwszej odpowiedzi. Może masz ten sam problem? http://stackoverflow.com/questions/10828843/powermockito-got-invaliduseofmatchersexception-when-use-matchers-mocking-static – bezmax
, więc czy DBCollection jest obiektem makiety Mockito? –