Saltar al contenido

Mockito ¿Cómo burlarse y afirmar una excepción lanzada?

Solución:

Para responder primero a su segunda pregunta. Si está utilizando JUnit 4, puede anotar su prueba con

@Test(expected=MyException.class)

para afirmar que se ha producido una excepción. Y para “burlarse” de una excepción con mockito, utilice

when(myMock.doSomething()).thenThrow(new MyException());

Solución de estilo BDD (actualizado a Java 8)

Mockito por sí sola no es la mejor solución para manejar excepciones, utilice Mockito con Catch-Exception

Mockito + Catch-Exception + AssertJ

given(otherServiceMock.bar()).willThrow(new MyException());

when(() -> myService.foo());

then(caughtException()).isInstanceOf(MyException.class);

Código de muestra

  • Mockito + Catch-Exception + Assertj muestra completa

Dependencias

  • eu.codearte.catch-exception: catch-exception: 2.0
  • org.assertj: assertj-core: 3.12.2

Si también desea probar el mensaje de excepción, puede usar ExpectedException de JUnit con Mockito:

@Rule
public ExpectedException expectedException = ExpectedException.none();

@Test
public void testExceptionMessage() throws Exception {
    expectedException.expect(AnyException.class);
    expectedException.expectMessage("The expected message");

    given(foo.bar()).willThrow(new AnyException("The expected message"));
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *