このセクションの内容
はじめに
単体テスト アシスタントは、個々のメソッドを異なる引数でテストするためのパラメータライズされたテストの作成を支援します。次の UTA オプションを使用してテスト ケースを追加します。
- パラメータライズ - 単体テスト アシスタント ビューで使用できます。このオプションを使用すると、エディターで選択した個々のメソッドに対してテスト テンプレートを追加できます。生成されたテンプレートは、手動で変更し、パラメータライズ用データを指定して完成させる必要があります。
- テスト ケースの追加 - 単体テスト アシスタント ビューおよび IDE のコンテキスト メニューで使用できます。このオプションを使用すると、エディターで選択されたメソッドまたはプロジェクト エクスプローラーで選択されたファイルやパッケージに対して複数のテスト ケースを追加できます。このオプションで生成されるテスト ケースに使用される入力データを設定することができます。詳細については「設定の構成」を参照してください。
テストのパラメータライゼーションは、JUnit 4 および 5 でサポートされています。UTA は、設定ページで設定されたテスト フレームワークとパラメータライズ タイプを使用してパラメータライズされたテストを生成します (「設定の構成」を参照)。
[パラメータライズ] オプションの使用
- エディターでメソッドを選択します。
- 単体テスト アシスタント ビューの [パラメータライズ] アクション リンクをクリックします。
- パラメーターを入力してテスト テンプレートを完成させ、デフォルトの値を変更します。
- UTA でテストを実行し、カバレッジ情報および可能な改善策に関する推奨事項を取得します (「単体テスト アシスタントを使用した単体テストの実行」を参照)。
private メソッドに対するテストの作成
UTA は private メソッドのパラメータライズド テストを作成し、コードのカバレッジを上げることができます。
- UTA の設定で [private メソッドのテストを作成] オプションをオンにします (「構成の設定」を参照)。
- エディターで private メソッドを選択します。
- [パラメータライズド private] アクション リンクをクリックし、選択されたメソッドのテストを作成します。
デフォルトでは、[private メソッドのテストを作成] オプションはオフです。業界のベスト プラクティスでは、private メソッドを直接テストするのではなく、private メソッドを呼び出すアクセス可能なメソッドのテストを作成することで private メソッドをテストするよう推奨されています。
[テスト ケースの追加] オプションの使用
- エディターでメソッドを選択します。
- UTA インターフェイスで [テスト ケースの追加] ボタンをクリックします。
[単体テスト アシスタント - テスト ケースの追加] ダイアログが開きます。 - [パラメータライズ] オプションをオンにします (その他のオプションについては「複数の単体テストの作成」を参照)。
以下のオプションをカスタマイズします。
- 1 つのテスト ケースに対して作成されるパラメーター セットの最大数 オプションは、1 つのテスト ケースに対して作成されるパラメーターのバリエーションの最大行数を指定します。
- テスト データの生成先 オプションは、テスト ケースが保存される場所を指定します。ドロップダウン メニューから [コード] または [CSV] を選択します。デフォルト値はコードです。CSV について
- CSV 形式は、JUnitParams および JUnit 5 のパラメータライズ テスト タイプでサポートされています。
- CSV は UTF-8 文字エンコーディングをサポートしています。
- CSV ファイルは Java ファイルと同じフォルダーに保存されます。ビルド システムで指定されたリソース フォルダーと場所が一致していない場合、CSV ファイルを適切な場所にコピーします。
- オブジェクト初期化モードを指定します。
- 深く -(デフォルト値) テスト対象メソッドおよびテスト実行時に呼び出された他のメソッドから収集されたデータを使用してオブジェクトおよびモックを準備します。
- 浅く - テスト対象メソッドから収集されたデータを使用してオブジェクトおよびモックを準備します。 - モックの初期化方法を指定します。
- テスト メソッド内で設定 - テスト対象オブジェクトおよびその依存関係をテスト メソッド内で宣言して初期化することでモックを初期化します。
- @InjectMocks の使用 - @InjectMocks アノテーションを使用してモック インジェクションを実行するフィールドをマークし、@Mock を使用して依存関係をマークすることでモックを初期化します。
詳細については「モックの作成」を参照してください。 - (任意) [作成されたテストの実行タイムアウト (ミリ秒)] オプションを有効または無効にし、このテストのセットを実行する際の制限時間 (ミリ秒単位) を指定します。この制限時間が過ぎると、テスト実行が停止し、テストが失敗します。エラー情報は推奨事項として表示されます。デフォルトでこのオプションはオンであり、値として 1000 が設定されています。
- テスト ケースを作成するメソッドを選択します。
- [OK] をクリックしてテスト ケースを作成します。テスト ケースには事前に設定済みのパラメータライズ データが含まれています (設定の参照とカスタマイズについては「設定の構成」を参照してください)。
- テストを参照し、値を変更したりサンプル アサーションのコメントを解除します。
- UTA を使用してテストを実行し、カバレッジ情報と可能な改善に関する推奨事項を収集します (詳細については「単体テスト アシスタントを使用した単体テストの実行」を参照)。
あるいは、パッケージ エクスプローラーでコンテキスト メニューを使用してテスト ケースを追加することもできます。
- IDE でファイル、パッケージ、またはプロジェクトを右クリックします。
- [単体テスト] > [テスト ケースの追加] をクリックして単体テスト ダイアログを開き、上の手順 3 から 11 を行います。
複数のファイルまたはパッケージを選択した場合、単体テスト アシスタント ダイアログには個々のメソッドが表示されません。テスト クラスがまだ作成されていないすべてのテスト可能なファイルに対してテスト ケースが追加されます。UTA はテストできないファイルやテスト クラスがすでに存在するファイルをスキップします。
パッケージ エクスプローラーで個別のメソッドを複数選択した場合、メソッドが同じクラスに属しているときは、個々のメソッドに対してテスト ケースを作成できます。異なるクラスのメソッドを選択した場合、またはメソッドとクラスまたはパッケージを同時に選択した場合、テスト ケースは生成されません。
パラメータライズド テストとして複製する
UTA ビューで、既存のパラメータライズされていないテストから JUnit 5 のパラメータライズド テストを作成できます。
既存のテストをパラメータライズド テストとして複製しても、元のテストには影響はありません。テスト対象メソッドに渡されている既存のリテラル値がテスト パラメーターになります。値は新しく作成されたテストの単一のデータ行に変わります。