詳細

推奨事項のタイプ: 例外 / アサーション エラー

設定可能: いいえ

フィルター カテゴリ例外 / アサーション エラー

説明

この推奨事項は以下の場合に表示されます。

  • 実行中にテストが失敗した
  • 予期しない例外がスローされた
  • 期待された例外がスローされなかった
  • スローされた例外が期待される例外ではなかった

コードに応じて、以下のアクション リンクが表示される可能性があります。

  • ハイライト - 単体テスト アシスタント ビューに表示された実行フロー内の問題をハイライト表示します。
  • 移動 - 推奨事項に関連するコードをエディターでハイライト表示します (たとえば例外をスローするコードなど)。
  • 期待値としてマーク - レポートされた例外を期待された例外としてマークし、以降のテスト実行ではこの推奨事項が表示されないようにします。
    - Junit 4 テストでは、テストに @Test(expected=...) アノテーションを追加します (「JUnit 4 テストの例」を参照)。
    - JUnit 5 テストでは、assertThrows() メソッドで例外をラップします(「JUnit 5 テストの例」を参照)。
  • 期待される例外を削除 - コードから @Test(expected=...) アノテーションまたは assertThrows() メソッドを削除します。このオプションは、テスト実行時に期待された例外がスローされなかった場合に表示されます。
  • AI で修正I - AI を使用して、失敗したテストに対する提案を示します。アクション リンクをクリックすると、LLM プロバイダーからの出力を表示するダイアログが開き、テストを修正する方法についての提案が示されます。[修正の適用] および [閉じる] ボタンがあります。[修正の適用] をクリックすると、AI によって返された変更の提案との差分を示すエディターが開きます。[適用] をクリックし、変更を受け入れてテストを更新するか、[キャンセル] をクリックし、LLM 出力のダイアログに戻ります。テスト ソース コードを受け入れる前に、さらに変更を加えることもできます。この機能を使用するには、ライセンスで「LLM Integration」ライセンス機能を有効化し、LLM プロバイダーを有効化して設定する必要があります (「LLM プロバイダーの設定」を参照)。 

    この機能は LLM を利用しているため、不正確な情報を生成する可能性があります。

(info) @Rule ExpectedException を使用して例外を処理しているテストに対しては、[期待値としてマーク] および [期待される例外を削除] オプションは表示されません。

JUnit 4 テストの例

サンプルコード 1 - 例外がスローされた

次のテストは、makePayment に対して作成されたものです。

UTA は例外がスローされたことを検出しました。

[期待値としてマーク] をクリックして @Test(expected=...) アノテーションをスローされた例外で更新します。

サンプルコード 2 - 期待される例外がスローされない

次のサンプルでは、IllegalArgumentException が期待されています。

UTA は例外がスローされなかったことを検出しました。

[期待される例外を削除] をクリックして、テストから Test(expected = IllegalArgumentException.class) アノテーションを削除します。

サンプルコード 3 - 誤った例外がスローされた

次のサンプルでは、IllegalArgumentException が期待されています。

UTA は、実際にスローされた例外が Error だったことを検出しました。

[期待値としてマーク] をクリックして @Test(expected=...) アノテーションをスローされた例外で更新します。

サンプル コード 5 - AI で修正

次のテストは、makePayment に対して作成されたものです。

UTA は例外がスローされたことを検出しました。

[AI で修正] をクリックします。LLM プロバイダーからの出力を表示するダイアログが開き、テストを修正する方法についての提案が示されます。

[修正の適用] をクリックします。コードの差分ビューが開きます。テスト クラスに変更を追加する前に、必要に応じてコードを編集できます。

[適用] をクリックします。

JUnit 5 テストの例

次のテストは、makePayment に対して作成されたものです。

UTA は例外がスローされたことを検出しました。

[期待値としてマーク] をクリックして、assertThrows メソッドでスローされた例外をラップします。


  • No labels