J'utilise mockito dans un test junit. Comment faire pour qu'une exception se produise et ensuite affirmer qu'elle a (pseudo-code générique)
java
exception-handling
junit
mockito
stackoverflow
la source
la source
caughtException
?com.googlecode.catchexception.CatchException.caughtException;
Pour répondre d'abord à votre deuxième question. Si vous utilisez JUnit 4, vous pouvez annoter votre test avec
pour affirmer qu'une exception s'est produite. Et pour "simuler" une exception avec mockito, utilisez
la source
Si vous souhaitez également tester le message d'exception, vous pouvez utiliser ExpectedException de JUnit avec Mockito:
la source
given()
D'où est-ce que ça vient?Réponse mise à jour pour le 19/06/2015 (si vous utilisez java 8)
Utilisez simplement assertj
Utilisation d'assertj-core-3.0.0 + Java 8 Lambdas
Référence: http://blog.codeleak.pl/2015/04/junit-testing-exceptions-with-java-8.html
la source
Si vous utilisez JUnit 4 et Mockito 1.10.x Annotez votre méthode de test avec:
et pour lancer votre exception, utilisez:
la source
Faites que l'exception se produise comme ceci:
Vérifiez que cela s'est produit soit en affirmant que votre test lèvera une telle exception:
Ou par une vérification simulée normale:
Cette dernière option est requise si votre test est conçu pour prouver que le code intermédiaire gère l'exception (c'est-à-dire que l'exception ne sera pas levée depuis votre méthode de test).
la source
verify
appel affirme-t-il l'exception?when
clause soit correcte, elle doit avoir levé une exception.Utilisez doThrow de Mockito , puis attrapez l'exception souhaitée pour affirmer qu'elle a été levée plus tard.
la source
En utilisant mockito, vous pouvez faire en sorte que l'exception se produise.
when(testingClassObj.testSomeMethod).thenThrow(new CustomException());
En utilisant Junit5, vous pouvez affirmer une exception, affirmer si cette exception est levée lors de l' appel de la méthode de test .
Trouvez un exemple ici: assert exception junit
la source
Sans rapport avec mockito, on peut attraper l'exception et affirmer ses propriétés. Pour vérifier que l'exception s'est produite, déclarez une condition fausse dans le bloc try après l'instruction qui lève l'exception.
la source
Ou si votre exception est levée depuis le constructeur d'une classe:
la source
Message d'affirmation par exception:
la source