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

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

Barbara Streisand
Barbara StreisandOriginal
2024-11-19 22:50:03353Durchsuche

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

Außergewöhnliche Ausnahmebehauptungen in JUnit 5

In JUnit 5 wurde die Behauptung, dass eine Methode eine Ausnahme auslöst, durch die Einführung von AssertThrows( ). Diese Methode bietet eine präzisere und bequemere Möglichkeit, das Ausnahmeverhalten zu überprüfen, insbesondere wenn mehrere Ausnahmen innerhalb desselben Tests erwartet werden.

Zuvor verließen sich Entwickler auf die @Rule-Annotation, um nach Ausnahmen zu suchen, dieser Ansatz hatte jedoch Einschränkungen wenn mehrere Ausnahmen beteiligt waren. „asserThrows()“ hingegen ermöglicht flexible und anpassbare Ausnahmetests.

Durch die Nutzung von Java 8-Lambdas ermöglicht „asserThrows()“ Entwicklern das Schreiben prägnanter und aussagekräftiger Testaussagen:

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

In diesem Beispiel wird AssertThrows() verwendet, um zu prüfen, ob die Methode doThing() beim Aufruf eine MyException auslöst. Der als zweites Argument übergebene Lambda-Ausdruck definiert den Code, der die Ausnahme auslösen soll. Das dritte Argument stellt eine optionale Meldung bereit, die angezeigt wird, falls die Behauptung fehlschlägt.

Durch die Verwendung von affirmThrows() können Entwickler ihren Ausnahmetestcode optimieren, problemlos mehrere Ausnahmen innerhalb eines einzigen Tests geltend machen und klare und informative Bereitstellungen bereitstellen Fehlermeldungen, wenn Behauptungen fehlschlagen.

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

Stellungnahme:
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