Estou usando mockito em um teste junit. Como você faz uma exceção acontecer e depois afirma que possui (pseudo-código genérico)
java
exception-handling
junit
mockito
stackoverflow
fonte
fonte
caughtException
?com.googlecode.catchexception.CatchException.caughtException;
Para responder sua segunda pergunta primeiro. Se você estiver usando o JUnit 4, poderá anotar seu teste com
afirmar que ocorreu uma exceção. E para "simular" uma exceção com o mockito, use
fonte
Se você quiser testar a mensagem de exceção, poderá usar o ExpectedException do JUnit com o Mockito:
fonte
given()
De onde vem isto?Resposta atualizada para 19/06/2015 (se você estiver usando o java 8)
Basta usar assertj
Usando assertj-core-3.0.0 + Java 8 Lambdas
Referência: http://blog.codeleak.pl/2015/04/junit-testing-exceptions-with-java-8.html
fonte
Se você estiver usando o JUnit 4 e o Mockito 1.10.x, anote seu método de teste com:
e para lançar a exceção desejada, use:
fonte
Faça a exceção acontecer assim:
Verifique se isso aconteceu afirmando que seu teste gerará uma exceção:
Ou pela verificação simulada normal:
A última opção é necessária se o seu teste for projetado para provar que o código intermediário lida com a exceção (ou seja, a exceção não será lançada do seu método de teste).
fonte
verify
chamada afirma a exceção?when
cláusula esteja correta, ela deve ter gerado uma exceção.Use o doThrow do Mockito e, em seguida, capture a exceção desejada para afirmar que foi lançada mais tarde.
fonte
Usando o mockito, você pode fazer a exceção acontecer.
when(testingClassObj.testSomeMethod).thenThrow(new CustomException());
Usando o Junit5, você pode afirmar a exceção, afirma se essa exceção é lançada quando o método de teste é chamado.
Encontre uma amostra aqui: assert exception junit
fonte
Não relacionado ao mockito, pode-se capturar a exceção e afirmar suas propriedades. Para verificar se a exceção ocorreu, afirme uma condição falsa no bloco try após a instrução que lança a exceção.
fonte
Ou se sua exceção for lançada do construtor de uma classe:
fonte
Afirme por mensagem de exceção:
fonte