Maison  >  Article  >  Java  >  Comment affirmer des exceptions dans JUnit 5 à l’aide de Assertions.assertThrows() ?

Comment affirmer des exceptions dans JUnit 5 à l’aide de Assertions.assertThrows() ?

DDD
DDDoriginal
2024-11-19 19:04:02760parcourir

How to Assert Exceptions in JUnit 5 using Assertions.assertThrows()?

Assertion d'exceptions dans JUnit 5 avec Assertions.assertThrows()

Dans JUnit 5, affirmer qu'une méthode lève une exception peut être obtenu via la méthode Assertions.assertThrows(). Cela fournit un moyen pratique et expressif de tester divers scénarios d'exception, en particulier lorsqu'il s'agit de plusieurs exceptions dans un seul test.

Considérez le cas de test suivant :

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"));
}

Voici comment Assertions.assertThrows () fonctionne :

  1. Type d'exception : Le premier argument de assertThrows() est le type d'exception attendu. Dans ce cas, nous nous attendons à ce que MyException soit levée.
  2. Executable Lambda : Le deuxième argument est une expression lambda représentant le code exécutable testé. Il doit invoquer la méthode qui est censée lever une exception.
  3. Message (facultatif) : le troisième argument (facultatif) vous permet de spécifier un message d'erreur personnalisé en cas d'échec de l'assertion.

Avantages de l'utilisation Assertions.assertThrows() :

  • Concis et lisible : Assertions.assertThrows() simplifie les tests d'exception par rapport à l'utilisation d'une @Rule, rendant vos tests plus compacts et lisibles .
  • Test d'exceptions multiples : Cette méthode vous permet pour tester plusieurs exceptions dans le même scénario de test.
  • Assertions plus propres : au lieu de vérifier manuellement l'exception levée, assertThrows() fournit une manière plus concise et déclarative d'affirmer les conditions d'exception.

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!

Déclaration:
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