Ich versuche, einige Mongo Klassen zu verspotten, so dass ich (ziemlich Standard-Sachen) keine Verbindung benötigen, aber den folgenden Code gibt mir Probleme:Mockito - 0 Matchers Erwartete, 1 Aufgenommen (InvalidUseOfMatchersException)
when(dbCollection.find(isA(DBObject.class))).thenReturn(dbCursor);
Ausführen dieses mir bekommen ist:
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Unerlaubte Verwendung von Argument Matcher!
0 Matcher erwartet, 1 aufgezeichnet:
bei ... GridFileManagerTest.beforeClass (GridFileManagerTest.java:67)Diese Ausnahme kann auftreten, wenn Matcher mit Rohwerten kombiniert werden:
// falsch: irgendeinemethode (ANYOBJECT(), "rohe Zeichenfolge");Wenn Matcher verwendet werden, müssen alle Argumente von Matching-Programmen zur Verfügung gestellt werden.
Zum Beispiel:
// richtig:
someMethod (anyObject(), eq ("String by matcher"));Für weitere Informationen siehe Javadoc für Matchers-Klasse.
Wenn ich dies aber tun:
when(dbCollection.find(mock(DBObject.class))).thenReturn(dbCursor);
es nicht mehr das Problem hat. Dies scheint jedoch nicht das zu erreichen, was ich möchte - ich möchte den Wert zurückgeben, wenn die Methode mit einem Objekt vom Typ DBObject aufgerufen wird.
Gedanken?
Siehe '[EDIT]' Teil der ersten Antwort. Vielleicht hast du dasselbe Problem? http://stackoverflow.com/questions/10828843/powermockito-got-invaliduseofmatchersexception-when-use-matchers-mocking-static – bezmax
Also ist DBCollection ein Mockito Mock-Objekt? –