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

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

Barbara Streisand
Barbara StreisandOriginal
2024-11-26 15:49:11760Durchsuche

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

Verbesserte Ausnahmezusicherungen in JUnit 5

Während @Rule zuvor zur Überprüfung der Ausnahmebehandlung in JUnit 5 verwendet wurde, führte dies zu Einschränkungen beim Testen mehrerer Ausnahmen innerhalb eines einzelnen Tests. Um diesen Prozess zu rationalisieren und zusätzliche Flexibilität zu gewinnen, hat JUnit 5 „assetThrows()“ eingeführt.

преимущества использования „assessertThrows()“

  • Ermöglicht das Testen mehrerer Ausnahmen innerhalb einer einzigen test
  • Umfasst die Kraft von Lambda Ausdrücke in Java 8
  • Stellt den empfohlenen Ansatz für Ausnahmetests in JUnit dar

Использование attachmentThrows()

Die Syntax von AssertThrows() ist prägnant und intuitive:

assertThrows(expectedExceptionClass, supplier, message)
  • expectedExceptionClass: Gibt den erwarteten Ausnahmetyp an
  • supplier: Ein Lambda-Ausdruck, der den erwarteten Code aufruft eine Ausnahme auslösen
  • Nachricht: Eine optionale Nachricht, die angezeigt werden soll wenn die Ausnahme nicht ausgelöst wird

Beispielanwendung

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

Durch die Nutzung von affirmThrows() können Sie jetzt effizient auf Ausnahmen in JUnit 5 testen und so sicherstellen Robustes und gründliches Testen Ihres Codes.

Das obige ist der detaillierte Inhalt vonWie kann „assertThrows()' von JUnit 5 das Testen von Ausnahmen vereinfachen?. 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