Assertions.assertThrows() を使用して JUnit 5 で例外をアサートするにはどうすればよいですか?

DDD
リリース: 2024-11-19 19:04:02
オリジナル
757 人が閲覧しました

How to Assert Exceptions in JUnit 5 using Assertions.assertThrows()?

Assertions.assertThrows() を使用した JUnit 5 での例外のアサート

JUnit 5 では、メソッドが例外をスローすることをアサートするには、次の方法を使用します。 Assertions.assertThrows() メソッド。これにより、特に単一のテストで複数の例外を処理する場合に、さまざまな例外シナリオをテストするための便利で表現力豊かな方法が提供されます。

次のテスト ケースを考えてみましょう。

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"));
}
ログイン後にコピー

Assertions.assertThrows の方法は次のとおりです。 () は動作します:

  1. 例外タイプ:assertThrows() の最初の引数は、予期される例外タイプです。この場合、MyException がスローされることが予想されます。
  2. Executable Lambda: 2 番目の引数は、テスト対象の実行可能コードを表すラムダ式です。例外をスローすると予想されるメソッドを呼び出す必要があります。
  3. Message (Optional): 3 番目の引数 (オプション) を使用すると、アサーションが失敗した場合のカスタム エラー メッセージを指定できます。

Assertions.assertThrows() を使用する利点:

  • 簡潔で読みやすい: Assertions.assertThrows() は例外を簡素化します@Rule を使用する場合と比較して、テストがよりコンパクトで読みやすくなります。
  • 複数の例外テスト: このメソッドを使用すると、同じテスト ケース内で複数の例外をテストできます。
  • よりクリーンなアサーション: スローされた例外を手動でチェックする代わりに、assertThrows() は例外条件をアサートするためのより簡潔で宣言的な方法を提供します。

以上がAssertions.assertThrows() を使用して JUnit 5 で例外をアサートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート