Mit Mockito, wie kann ich abfangen eines Callback-Objekt auf einer void-Methode?
-
01-10-2019 - |
Frage
Ich verwende Mockito ein Vermächtnis JAAS / LDAP-Login-Modul zu testen.
Die javax.security.auth.callback.CallbackHandler
-Schnittstelle definiert die Funktion:
void handle(javax.security.auth.callback.Callback[] callbacks)
Ich bin callbacks
erwarte ein NameCallback
zu enthalten, der das Objekt ist, dass Bedürfnisse manipuliert werden, um den Test zu bestehen.
Gibt es eine Möglichkeit, dies effektiv zu verspotten, oder wäre ich besser dran mit einer stubbed Implementierung von CallbackHandler
?
Lösung
Für Funktionen Rückkehr void
, verwendet doAnswer ()
doAnswer(...).when(mockedObject).handle(any(Callback[].class));
Und ein Answer
dass führt das Abhören als Parameter zu doAnswer
gehen muß, zum Beispiel als eine anonyme Klasse:
new Answer() {
public Object answer(InvocationOnMock invocation) {
Object[] args = invocation.getArguments();
Mock mock = invocation.getMock();
return null;
}}
In diesem Fall args
wird das Array Callback[]
!
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow