Maison > Java > javaDidacticiel > Comment « assertThrows() » de JUnit 5 simplifie-t-il les tests d'exception ?

Comment « assertThrows() » de JUnit 5 simplifie-t-il les tests d'exception ?

DDD
Libérer: 2024-11-19 14:51:03
original
431 Les gens l'ont consulté

How Does JUnit 5's `assertThrows()` Simplify Exception Testing?

JUnit 5 : assertion d'exception améliorée avec assertThrows()

Dans JUnit 5, affirmer qu'une méthode lève une exception est devenu plus flexible et efficace avec l'introduction du Méthode assertThrows(). Cette méthode élimine le besoin de l'approche fastidieuse de @Rule, en particulier lorsqu'il s'agit de plusieurs exceptions attendues au sein d'un seul test.

Utilisation de assertThrows()

La méthode assertThrows() accepte plusieurs arguments :

  • La classe d'exception attendue (par exemple, MyException.class)
  • Une expression lambda qui exécute le code censé lever une exception
  • Un message facultatif à afficher si l'exception n'est pas levée
import static org.junit.jupiter.api.Assertions.assertThrows;

@Test
void exceptionTesting() {
    MyException thrown = assertThrows(
        MyException.class,
        () -> myObject.doThing(),
        "Expected doThing() to throw, but it didn't"
    );

    assertTrue(thrown.getMessage().contains("Stuff"));
}
Copier après la connexion

Dans cet exemple, le test attend la méthode doThing() pour lancer une MyException avec un message contenant "Stuff". Si l'exception n'est pas levée ou si le message ne correspond pas, le test échouera.

Avantages par rapport à @Rule

Par rapport à @Rule, assertThrows() offre plusieurs avantages :

  • Simplicité : Il réduit le code passe-partout associé à la configuration et au démontage d'une règle, en effectuant les tests plus lisible.
  • Flexibilité : Il vous permet de tester plusieurs exceptions au sein du même test, réduisant ainsi le besoin de tests séparés.
  • Messages d'erreur améliorés : En cas d'échec du test, assertThrows() fournit un message d'erreur plus contextualisé, spécifiant la classe d'exception attendue et le message qu'elle doit contain.

Conclusion

La méthode assertThrows() de JUnit 5 offre aux développeurs un moyen concis et efficace d'affirmer le lancement d'exceptions dans leurs tests. En rationalisant le processus et en fournissant des messages d'erreur améliorés, assertThrows() rend les tests d'exceptions plus fiables et plus faciles à maintenir.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal