java unit-testing callback jaas mockito

java - Usando Mockito, ¿cómo puedo interceptar un objeto de devolución de llamada en un método vacío?



unit-testing callback (1)

Para las funciones que vuelven void , use doAnswer ()

doAnswer(...).when(mockedObject).handle(any(Callback[].class));

Y una Answer que realiza la intercepción debe entrar como el parámetro para hacer una doAnswer , por ejemplo, como una clase anónima:

new Answer() { public Object answer(InvocationOnMock invocation) { Object[] args = invocation.getArguments(); Mock mock = invocation.getMock(); return null; }}

En este caso, args será la matriz Callback[] !

Estoy usando mockito para probar un módulo de inicio de sesión JAAS / LDAP heredado.

La interfaz javax.security.auth.callback.CallbackHandler define la función:

void handle(javax.security.auth.callback.Callback[] callbacks)

Estoy esperando que las callbacks de callbacks contengan un NameCallback , que es el objeto que necesita ser manipulado para pasar la prueba.

¿Hay alguna manera de burlarse de esto de manera efectiva, o estaría mejor con una implementación obsoleta de CallbackHandler ?