このセクションの内容:
推奨事項のフィルタリング
テスト実行後、推奨ビューに、テスト改善のための推奨事項が表示されます (UTA が生成する推奨事項を指定する方法については「設定の構成」を参照してください)。デフォルトでは実行中に生成されたすべての推奨事項を表示しますが、推奨ビュー上部のドロップダウン メニューからカテゴリを選択し、特定の推奨事項だけを表示することができます。
アクション リンクの使用
推奨事項には、テスト コードをナビゲートし、変更するのに役立つアクション リンクがあります。推奨事項に表示されるアクション リンクは、推奨事項のタイプ、テストのタイプ、テスト コードによって異なります。ただし、次のリンクはすべての推奨事項に表示されます。
- 移動 - 推奨事項に関連するコードをエディターでハイライト表示します。
- ハイライト - 左側に表示された実行フロー内の問題をハイライト表示します。
推奨事項には以下も含まれる場合があります。
- [詳細を表示...] リンクは、個々の推奨事項に関する詳細が記述されているページを開きます。
- [メソッド名] トラック アクション リンクは、アサーションが必要な可能性がある値を検出します。詳細については「オブジェクトの変更の追跡とアサーションの作成」を参照してください。
- テスト コードを自動的に更新するアクション リンク (たとえば、[コメント解除] は、UTA によって生成されたテスト テンプレートの特定のコメントマーカーを削除します。また、[アサーションの削除] は不要なアサーションがある行を削除します。
推奨事項への対処
このセクションでは、単体テスト アシスタントの推奨事項のサンプルをいくつか示し、テスト品質の改善にどのように役立つかを説明します。
アサーションなし
UTA はアサーションが含まれないテストを検出しました。通常、この問題は、UTA で新規テストを作成したが、デフォルトのアサーションをコメント化したままの場合に発生します。
修正方法: 以下のいずれかの処理を行います。
- デフォルトのアサーションのコメントを手動で、または [コメント解除] アクション リンクを使用して解除し、デフォルト値を変更します。
- [[メソッド名] のトラック] アクション リンクをクリックします。UTA はテストを実行し、アサーションが必要な可能性がある値を表示します。詳細については「オブジェクトの変更の追跡とアサーションの作成」を参照してください。
- テストを手動で変更し、テスト実行フローを表す緑または赤のカバレッジ マーカーに基づいてアサーションを作成します。
アサーションの失敗
UTA はアサートされる値が期待値と異なるためにテスト実行中に失敗したアサーションを検出しました。
修正方法: 以下のいずれかの処理を行います。
- アサーションを手動で変更します。
- [アサーションの更新] アクション リンクをクリックして、自動的に現在の値を期待値とします。
- [アサーションの反転] リンクをクリックして、自動的にアサーションのロジックを逆にします。たとえば、
assertTrue
をassertFalse にします。
- [アサーションの削除] リンクをクリックして、テスト コードからアサーションを削除します。
Spring テストを行う場合、[アサーションの反転] アクション リンクは利用できません。アサーションのタイプによって、以下のいずれかのアクション リンクを使用してテストを更新します。
- [アサーションの更新] アクション リンクをクリックして、自動的に現在の値を期待値とします。更新される値がローカル変数に代入されている場合、値の方が一致している場合にだけ (たとえばどちらの値も integer 型であるなど)、アクション リンクが利用できます。
- [次を更新: [...]] リンクをクリックして、 HTTP ステータス アサーションを更新します。
- [アサーションの削除] リンクをクリックして、テスト コードからアサーションを削除します。
システム プロパティの変更
UTA は、テスト実行中に追加されたが、実行後に削除されていないシステム プロパティを検出しました。結果として、その後のすべてのテストはこのプロパティにアクセスするため、テスト間の依存関係が生まれ、テストを分離して実行できない可能性があります。
修正方法: テスト実行中に追加または削除されたシステム プロパティが必ず実行後に削除または復元されるようにします。
他のスレッド
UTA は、テスト実行中にアクティブだった他のスレッドを検出しました。他のスレッドは、テストの安定性に影響を与え、ランダムな失敗の原因になる可能性があります。
修正方法: サイド スレッドを伴うテスト ケースを記述するのを避けるか、それらのスレッドがテスト結果に影響を与えないことを確認します。
ファイルの作成
UTA は、テスト実行中に作成されたが、実行後に削除されていないファイルを検出しました。これは、その後のテスト実行や他のテストに影響を与えたり、アプリケーションの潜在的な問題を隠蔽する可能性があります。
修正方法: テストによって作成されたファイルが、テスト実行が終了する前に必ず削除されるようにします。
静的なフィールドの変更
UTA は、テスト実行中に変更された静的フィールドを検出しました。これは、その後のテスト実行や他のテストに影響を与える可能性があります。
修正方法: 実行中に静的フィールドを変更するテスト ケースを作成しないようにします。または、変更がテスト結果に影響を与えないことを確認します。
この推奨事項は、setStaticValue()
など、名前がキャメル ケースの名前付け規則に従っており、set で始まる静的メソッドによって変更される静的フィールドに対してだけ表示されます。
タイムアウト
複数テストの作成時に指定された制限時間 (「複数の単体テストの作成」を参照) を超えました。
修正方法: 手動でテストを変更して実行時間を短縮するか、テスト コードの値を変更して新しいタイムアウト値を設定します。
カバーされていないコード
UTA がカバーされていないコードを検出しました。カバーされていないコードに移動するには、[移動] をクリックします。
修正方法: 以下のいずれかを行います。
- 既存のテスト ケースを変更または拡張してコードをカバーします。たとえば、メソッド パラメーターを変更します。
- 既存のテストを手動でコピーし、コピーされたテストを変更してコードをカバーします。
- [テストの複製] アクション リンクをクリックして実行済みの既存のテスト ケースの一覧を表示し、複製して変更するテスト ケースを選択します。UTA は、テスト カバレッジおよびテスト名に基づいて、複製するべきテスト ケースをあらかじめ選択して表示します (カバレッジが変わらない場合、UTA は名前の番号が一番大きいテスト ケースを選択します)。クイックフィックスは通常のテストの場合にだけ利用できます。
UTA はコードをカバーするためにテスト ケースをどのように変更するべきかヒントを表示することがあります。
推奨事項の種類
UTA が表示する推奨事項の種類については「推奨事項の種類」を参照してください。