Estoy usando mockito en una prueba de junit. ¿Cómo hacer que ocurra una excepción y luego afirmar que tiene (pseudocódigo genérico)
java
exception-handling
junit
mockito
desbordamiento de pila
fuente
fuente
caughtException
?com.googlecode.catchexception.CatchException.caughtException;
Para responder a su segunda pregunta primero. Si está usando JUnit 4, puede anotar su prueba con
para afirmar que ha ocurrido una excepción. Y para "burlarse" de una excepción con mockito, use
fuente
Si también desea probar el mensaje de excepción, puede usar ExpectedException de JUnit con Mockito:
fuente
given()
¿De donde viene esto?Respuesta actualizada para 19/06/2015 (si está utilizando Java 8)
Solo usa afirmar
Usando afirj-core-3.0.0 + Java 8 Lambdas
Referencia: http://blog.codeleak.pl/2015/04/junit-testing-exceptions-with-java-8.html
fuente
Si usa JUnit 4 y Mockito 1.10.x Anote su método de prueba con:
y para lanzar su excepción deseada use:
fuente
Haz que la excepción suceda así:
Verifique que haya sucedido ya sea afirmando que su prueba arrojará tal excepción:
O por verificación simulada normal:
La última opción es necesaria si su prueba está diseñada para probar que el código intermedio maneja la excepción (es decir, la excepción no se lanzará desde su método de prueba).
fuente
verify
llamada afirma la excepción?when
cláusula sea correcta, debe haber arrojado una excepción.Use doThrow de Mockito y luego capture la excepción deseada para afirmar que se lanzó más tarde.
fuente
Usando mockito, puedes hacer que la excepción suceda.
when(testingClassObj.testSomeMethod).thenThrow(new CustomException());
Usando Junit5, puede afirmar una excepción, afirma si esa excepción se produce cuando se invoca el método de prueba .
Encuentre una muestra aquí: afirmar excepción junit
fuente
Sin relación con mockito, uno puede atrapar la excepción y afirmar sus propiedades. Para verificar que la excepción sucedió, afirme una condición falsa dentro del bloque try después de la declaración que arroja la excepción.
fuente
O si su excepción se produce desde el constructor de una clase:
fuente
Afirmar por mensaje de excepción:
fuente