Mockito prueba un método nulo arroja una excepción

Resuelto edwardmlyte asked hace 11 años • 4 respuestas

Tengo un método con un voidtipo de retorno. También puede generar una serie de excepciones, por lo que me gustaría probar las excepciones que se generan. Todos los intentos han fracasado por la misma razón:

El método when(T) en el tipo Stubber no es aplicable para los argumentos (void)

¿Alguna idea de cómo puedo hacer que el método arroje una excepción específica?

doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));
edwardmlyte avatar Mar 01 '13 18:03 edwardmlyte
Aceptado

Los paréntesis están mal colocados.

Necesitas usar:

doThrow(new Exception()).when(mockedObject).methodReturningVoid(...);
                                          ^

y NO usar:

doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));
                                                                   ^

Esto se explica en la documentación.

JB Nizet avatar Mar 01 '2013 11:03 JB Nizet

Si alguna vez te preguntaste cómo hacerlo usando el nuevo estilo BDD de Mockito:

willThrow(new Exception()).given(mockedObject).methodReturningVoid(...));

Y para referencia futura, es posible que sea necesario generar una excepción y luego no hacer nada:

willThrow(new Exception()).willDoNothing().given(mockedObject).methodReturningVoid(...));
Ondrej Burkert avatar Oct 25 '2018 14:10 Ondrej Burkert