Heim >Java >javaLernprogramm >Wie kann ich die Ausnahmebehandlung in JUnit effektiv testen?

Wie kann ich die Ausnahmebehandlung in JUnit effektiv testen?

DDD
DDDOriginal
2024-12-20 05:49:10579Durchsuche

How Can I Effectively Test for Exception Handling in JUnit?

Ausnahmebehandlung in JUnit testen

In JUnit kann das Testen, ob eine bestimmte Ausnahme ausgelöst wird, auf verschiedene Arten erreicht werden.

JUnit 5 und 4.13

Die @Test-Annotation unterstützt jetzt das erwartete Attribut, mit dem Sie die erwartete Ausnahme angeben können Typ:

@Test(expected = IndexOutOfBoundsException.class)
public void testIndexOutOfBoundsException() {
    ArrayList emptyList = new ArrayList();
    Object o = emptyList.get(0);
}

AssertJ oder Google Truth

Assertionsbibliotheken von Drittanbietern wie AssertJ und Google Truth bieten eine prägnantere Syntax für Ausnahmetests:

// AssertJ
assertThatThrownBy(() -> foo.doStuff()).isInstanceOf(IndexOutOfBoundsException.class);

// Google Truth
assertWithMessage("Expected IndexOutOfBoundsException").thatExceptionOfType(IndexOutOfBoundsException.class).isThrownBy(() -> foo.doStuff());

JUnit < ;= 4.12

Für JUnit 4.12 und früher gibt es mehrere Optionen:

  1. Boolesches Flag: Ähnlich dem Code in der ursprünglichen Frage.
  2. @Rule: Die @Rule-Annotation kann sein Wird zum Erstellen einer Testregel verwendet, die bestätigt, dass eine Ausnahme ausgelöst wird.
  3. Benutzerdefiniert Matcher: Erstellen Sie einen benutzerdefinierten Hamcrest-Matcher, um zu überprüfen, ob eine Ausnahme eines bestimmten Typs ausgelöst wurde.

Weitere Informationen zu diesen Optionen finden Sie in den JUnit-Test-FAQ.

Das obige ist der detaillierte Inhalt vonWie kann ich die Ausnahmebehandlung in JUnit effektiv testen?. 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