JUnit 5 でメソッドが例外をスローすることをアサートするより良い方法はありますか?
現在、テストが例外をスローすることを確認するために @Rule を使用する必要がありますが、テストで複数のメソッドが例外をスローすることが予想される場合には、この方法は機能しません。
ベストアンサー1
使用できますassertThrows()
、同じテスト内で複数の例外をテストできます。Java 8 ではラムダがサポートされているため、これは JUnit で例外をテストする標準的な方法です。
によるとJUnit ドキュメント:
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"));
}