


Wie werden Ausnahmen in JUnit 5 mithilfe von Assertions.assertThrows() aktiviert?
Nov 19, 2024 pm 07:04 PMAssertions von Ausnahmen in JUnit 5 mit Assertions.assertThrows()
In JUnit 5 kann die Behauptung, dass eine Methode eine Ausnahme auslöst, durch erreicht werden die Assertions.assertThrows()-Methode. Dies bietet eine bequeme und ausdrucksstarke Möglichkeit, verschiedene Ausnahmeszenarien zu testen, insbesondere wenn mehrere Ausnahmen in einem einzigen Test behandelt werden.
Betrachten Sie den folgenden Testfall:
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")); }
So funktioniert Assertions.assertThrows () funktioniert:
- Ausnahmetyp: Das erste Argument von AssertThrows() ist der erwartete Ausnahmetyp. In diesem Fall erwarten wir, dass MyException ausgelöst wird.
- Ausführbares Lambda: Das zweite Argument ist ein Lambda-Ausdruck, der den zu testenden ausführbaren Code darstellt. Es sollte die Methode aufrufen, von der erwartet wird, dass sie eine Ausnahme auslöst.
- Nachricht (optional): Mit dem dritten Argument (optional) können Sie eine benutzerdefinierte Fehlermeldung angeben, falls die Behauptung fehlschlägt.
Vorteile der Verwendung von Assertions.assertThrows():
- Prägnant und lesbar: Assertions.assertThrows() vereinfacht Ausnahmen Testen im Vergleich zur Verwendung einer @Rule, wodurch Ihre Tests kompakter und lesbarer werden.
- Testen mehrerer Ausnahmen: Mit dieser Methode können Sie mehrere Ausnahmen innerhalb desselben Testfalls testen.
- Sauberere Behauptungen: Anstatt manuell nach der ausgelösten Ausnahme zu suchen, bietet AssertThrows() eine präzisere und deklarativere Möglichkeit, Ausnahmebedingungen geltend zu machen.
Das obige ist der detaillierte Inhalt vonWie werden Ausnahmen in JUnit 5 mithilfe von Assertions.assertThrows() aktiviert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?

Top 4 JavaScript -Frameworks in 2025: React, Angular, Vue, Svelte

Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?

Wie kann ich funktionale Programmierungstechniken in Java implementieren?

Node.js 20: wichtige Leistungssteigerung und neue Funktionen

ICEBERG: Die Zukunft von Data Lake Tabellen

Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?
