ホームページ > Java > &#&チュートリアル > JUnit で例外処理を効果的にテストするにはどうすればよいですか?

JUnit で例外処理を効果的にテストするにはどうすればよいですか?

DDD
リリース: 2024-12-20 05:49:10
オリジナル
568 人が閲覧しました

How Can I Effectively Test for Exception Handling in JUnit?

JUnit での例外処理のテスト

JUnit では、特定の例外がスローされるかどうかを複数の方法でテストできます。

JUnit 5 および 4.13

@Test アノテーションは、expected 属性をサポートするようになりました。これにより、次のことが可能になります。予想される例外のタイプを指定します:

@Test(expected = IndexOutOfBoundsException.class)
public void testIndexOutOfBoundsException() {
    ArrayList emptyList = new ArrayList();
    Object o = emptyList.get(0);
}
ログイン後にコピー

AssertJ または Google Truth

AssertJ や Google Truth などのサードパーティ アサーション ライブラリは、例外テスト用のより簡潔な構文を提供します:

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

// Google Truth
assertWithMessage("Expected IndexOutOfBoundsException").thatExceptionOfType(IndexOutOfBoundsException.class).isThrownBy(() -> foo.doStuff());
ログイン後にコピー

JUnit

JUnit 4.12 以前の場合、いくつかのオプションがあります:

  1. ブールフラグ: 元の質問のコードと同様です。
  2. @Rule: @Rule アノテーションを使用してテストを作成できます例外がスローされたことをアサートするルール。
  3. カスタム マッチャー: カスタム Hamcrest マッチャーを作成して、特定のタイプの例外がスローされたかどうかを確認します。

参照これらのオプションの詳細については、JUnit Test-FAQ を参照してください。

以上がJUnit で例外処理を効果的にテストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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