Heim > Java > javaLernprogramm > Wie vereinfacht „assertThrows()' von JUnit 5 das Testen von Ausnahmen?

Wie vereinfacht „assertThrows()' von JUnit 5 das Testen von Ausnahmen?

DDD
Freigeben: 2024-11-19 14:51:03
Original
431 Leute haben es durchsucht

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

JUnit 5: Erweiterte Ausnahmezusicherung mit AssertThrows()

In JUnit 5 ist die Behauptung, dass eine Methode eine Ausnahme auslöst, mit der Einführung von flexibler und effizienter geworden assetThrows()-Methode. Diese Methode macht den umständlichen @Rule-Ansatz überflüssig, insbesondere wenn es um mehrere erwartete Ausnahmen innerhalb eines einzelnen Tests geht.

Verwendung von „asserThrows()“

Die Methode „assuertThrows()“ akzeptiert mehrere Argumente:

  • Die erwartete Ausnahmeklasse (z. B. MyException.class)
  • Ein Lambda Ausdruck, der den Code ausführt, von dem erwartet wird, dass er eine Ausnahme auslöst
  • Eine optionale Meldung, die angezeigt wird, wenn die Ausnahme nicht ausgelöst wird
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"));
}
Nach dem Login kopieren

In diesem Beispiel erwartet der Test doThing() Methode zum Auslösen einer MyException mit einer Nachricht, die „Stuff“ enthält. Wenn die Ausnahme nicht ausgelöst wird oder die Nachricht nicht übereinstimmt, schlägt der Test fehl.

Vorteile gegenüber @Rule

Im Vergleich zu @Rule bietet AssertThrows() mehrere Vorteile:

  • Einfachheit: Es reduziert den Boilerplate-Code, der mit dem Einrichten und Entfernen einer Regel verbunden ist, wodurch die Tests besser lesbar.
  • Flexibilität:Es ermöglicht Ihnen, mehrere Ausnahmen innerhalb desselben Tests zu testen, wodurch die Notwendigkeit separater Tests reduziert wird.
  • Erweiterte Fehlermeldungen: Im Falle eines Testfehlers stellt affirmThrows() eine kontextbezogenere Fehlermeldung bereit, die die erwartete Ausnahmeklasse und die Meldung angibt, die sie senden soll enthalten.

Fazit

Die BehauptungThrows()-Methode von JUnit 5 bietet Entwicklern eine präzise und effiziente Möglichkeit, das Auslösen von Ausnahmen in ihren Tests durchzusetzen. Durch die Rationalisierung des Prozesses und die Bereitstellung verbesserter Fehlermeldungen macht AssertThrows() Ausnahmetests zuverlässiger und wartbarer.

Das obige ist der detaillierte Inhalt vonWie vereinfacht „assertThrows()' von JUnit 5 das Testen von Ausnahmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage