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?

War es hilfreich?

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
scroll top