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)