詳細

推奨事項のタイプ: 潜在的なセットアップの問題

設定可能: はい

フィルター カテゴリ潜在的なセットアップの問題

説明

大量のテストが同一の例外または同一の理由で失敗している場合、プロジェクトに潜在的なセットアップの問題があることが示唆されます。潜在的なセットアップの問題の推奨事項は、このような問題の原因を診断するためにあります。潜在的なセットアップの問題の推奨事項は、テストの失敗の原因を隠し、例外およびアサーション エラーの推奨事項では必ずしも発見されない場合がある 1 つまたは複数の例外に注意を促します。

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

  • 1 つのクラスに対して実行された 2 つ以上の単体テストで、コードの同じ場所で同じ例外がスローされた
  • 単体テストでは例外が検出されないが、try-catch ブロックなどによってキャッチされている

次のような例がこのシナリオに当てはまります。

  • 非 void メソッドの try ブロックで例外がスローされ、catch ブロックでキャッチされ、null が返されている。通常、このようなケースでは、後続の null オブジェクトでの呼び出しによって NullPointerException が発生します。
  • try ブロックで例外がスローされ、キャッチされ、別の例外 (ユーザー定義例外など) にボックス化されている。このようなケースでは、テストでは最後にスローされた例外だけが観測され、本当の原因は隠れたままです。
  • try ブロックで例外がスローされ、キャッチされ、別の例外 (ユーザー定義例外など) として再スローされている。このようなケースでは、テストでは再スローされた例外だけが観測され、本当の原因は間接的にしか示されません。
  • void メソッドの try メソッドで例外がスローされ、キャッチされ、記録されている。このようなケースでは、テストでは例外が発生しません。しかし、異常な動作により、実行時にテストが大量に失敗する可能性があります。

通常、予期しない例外の原因は以下に関連しています。

  • 非常に複雑なプロジェクトでは見逃されることがある依存関係やライブラリの不足。
  • プロジェクトのセットアップの設定誤り。
  • プロジェクトの言語バージョンと、サードパーティ製ライブラリなどがサポートする言語バージョンの不一致。

一括生成時に、これらの問題によって、大量のテストがカバレッジに寄与しないテストとして削除される場合があります。潜在的なセットアップの問題の推奨事項は、テスト生成および実行に影響を与える可能性があるこのような問題を発見するためにあります。 

潜在的なセットアップの問題の診断に関しては、「潜在的なセットアップの問題を診断する方法」を参照してください。

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

  • ハイライト - 単体テスト アシスタント ビューに表示された実行フロー内の問題をハイライト表示します。
  • 移動 - 推奨事項に関連するコードをエディターでハイライト表示します (たとえば例外をスローするコードなど)。例

サンプルコード 1 –複数の例外がスローされた

次の 2 つのテストが実行されました。

テストはコードの同じ場所から同じ例外を受け取りました。

サンプルコード 1 –Try-Catch によって例外がキャッチされた

次のテストが生成されました。

単体テストで例外は検出されませんでしたが、次のコード行で try 文によって例外がキャッチされました。

このサンプルでは、catch 文で示されているように、単体テスト時に別の例外が再スローされます。

UTA はキャッチされた例外を検出します。


  • No labels