Heim > Java > javaLernprogramm > Wie setze ich die Ausnahmebehandlung in JUnit-Tests durch?

Wie setze ich die Ausnahmebehandlung in JUnit-Tests durch?

Susan Sarandon
Freigeben: 2025-01-04 07:54:35
Original
423 Leute haben es durchsucht

How Do I Assert Exception Handling in JUnit Tests?

Ausnahmebehandlung in JUnit-Tests durchsetzen

In JUnit erfordert das Testen von Code, der eine Ausnahme auslösen soll, einen sauberen und prägnanten Ansatz. Eine manuelle Prüfung auf Ausnahmen ist zwar möglich, aber nicht die idiomatische Methode.

JUnit 5 und 4.13

In den JUnit-Versionen 5 und 4.13 können Sie die Annotation @Test(expected = ExceptionClass.class) verwenden über die Testmethode. Dadurch wird erwartet, dass die angegebene Ausnahme ausgelöst wird.

Beispiel:

@Test(expected = IndexOutOfBoundsException.class)
public void testIndexOutOfBoundsException() {
    ArrayList emptyList = new ArrayList();
    emptyList.get(0);
}
Nach dem Login kopieren

AssertJ und Google-Truth

Wenn Sie Bibliotheken wie AssertJ oder Google-Truth verwenden, können Sie diese verwenden ihre Behauptungen zur Validierung Ausnahmen.

AssertJ:

import static org.assertj.core.api.Assertions.assertThatThrownBy;

@Test
public void testFooThrowsIndexOutOfBoundsException() {
    assertThatThrownBy(() -> foo.doStuff()).isInstanceOf(IndexOutOfBoundsException.class);
}
Nach dem Login kopieren

Google-Truth:

import static com.google.common.truth.Truth.assertThat;

@Test
public void testFooThrowsIndexOutOfBoundsException() {
    assertThat(assertThrows(IndexOutOfBoundsException.class, foo::doStuff)).isNotNull();
}
Nach dem Login kopieren

JUnit <= 4.12

In JUnit-Versionen kleiner oder gleich 4.12 ist dies möglich Verwenden Sie Rule oder TryCatch, um Ausnahmen zu behandeln.

Verwenden von Rule:

@Rule
public ExpectedException thrown = ExpectedException.none();

@Test
public void testIndexOutOfBoundsException() {
    thrown.expect(IndexOutOfBoundsException.class);
    ArrayList emptyList = new ArrayList();
    emptyList.get(0);
}
Nach dem Login kopieren

Verwenden von TryCatch:

import static org.junit.Assert.assertEquals;

@Test
public void testIndexOutOfBoundsException() {
    try {
        ArrayList emptyList = new ArrayList();
        emptyList.get(0);
        fail("IndexOutOfBoundsException was expected");
    } catch (IndexOutOfBoundsException e) {
        assertEquals(e.getClass(), IndexOutOfBoundsException.class);
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie setze ich die Ausnahmebehandlung in JUnit-Tests durch?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage