Testen erwarteter Exceptions in JUnit
Wir können erwartete Exceptions mit der JUnit 5 assertThrows Behauptung testen. Diese JUnit-Behauptungsmethode gibt die geworfene Exception zurück, so dass wir sie auch verwenden können, um die Exception-Nachricht zu überprüfen.
JUnit Assert Exception
Hier ist ein einfaches Beispiel, das zeigt, wie man eine Exception in JUnit 5 behauptet.
String str = null;
assertThrows(NullPointerException.class, () -> str.length());
JUnit 5 Assert Exception Nachricht
Nehmen wir an, wir haben eine Klasse definiert als:
class Foo {
void foo() throws Exception {
throw new Exception("Exception Message");
}
}
Lassen Sie uns sehen, wie wir die Exception sowie ihre Nachricht testen können.
Foo foo = new Foo();
Exception exception = assertThrows(Exception.class, () -> foo.foo());
assertEquals("Exception Message", exception.getMessage());
JUnit 4 Erwartete Exception
Wir können das erwartete Attribut der JUnit 4 @Test Annotation verwenden, um die erwartete Exception zu definieren, die von der Testmethode geworfen wird.
@Test(expected = Exception.class)
public void test() throws Exception {
Foo foo = new Foo();
foo.foo();
}
JUnit 4 Assert Exception Nachricht
Wenn wir die Exception-Nachricht testen wollen, müssen wir die ExpectedException-Regel verwenden. Unten ist ein komplettes Beispiel, das zeigt, wie man eine Exception sowie die Exception-Nachricht testet.
package com.journaldev.junit4;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
public class JUnit4TestException {
@Rule
public ExpectedException thrown = ExpectedException.none();
@Test
public void test1() throws Exception {
Foo foo = new Foo();
thrown.expect(Exception.class);
thrown.expectMessage("Exception Message");
foo.foo();
}
}
Das ist alles für einen schnellen Überblick über das Testen erwarteter Exceptions in JUnit 5 und JUnit 4.