概要
単体テスト アシスタントを使用すると、単体テスト アシスタント ビューまたは IDE のコンテキスト メニューの [テスト スイートの作成] オプションをクリックすることで、簡単にテスト スイートを作成できます。[テスト スイートの作成] オプションをクリックすると、UTA は以下を行います。
- 選択されたスコープ内のメソッドを解析する。
- テスト ケースを作成する。
[トラックしてアサーションを作成] 機能を使用して作成済みテストを実行し、アサーションを追加する (「オブジェクトの変更の追跡とアサーションの作成」を参照)。
Eclipse IDE を使用している場合、アサーションを追加するには、[Build Automatically] オプション ([プロジェクト] メニューの[Build Automatically]) をオンにする必要がありますこのオプションがオフの場合、テスト実行時にアサーションは追加されません。
UTA によって作成されたテスト ケースをカスタマイズするには、テスト コードの値とアサーションを確認し、必要に応じて変更します。さらに、[実行] オプションでテストを再実行し、UTA の推奨事項を使用してテスト ケースを拡張できます (「単体テスト アシスタントを使用した単体テストの実行」を参照)。
1 つのファイルに対してテスト スイートを作成
以下のいずれかの方法で [単体テスト アシスタント - テスト スイートの作成] ダイアログを開きます。
エディターでクラスを選択し、単体テスト アシスタント ビューの [テスト スイートの作成] アクション リンクをクリックします。
プロジェクト エクスプローラーでファイルを右クリックし、コンテキスト メニューの [単体テスト] > [テスト スイートの作成] をクリックします。
テスト作成オプションを設定します。
テスト スイートの最適化- 選択されたメソッドに対してテストを作成する際の優先順位を指定します。
- 最大コード カバレッジ - UTA はできるだけ多くのメソッド実行パスをカバーするのに必要な数のテストを作成します。このオプションを有効にすると、最大のカバレッジ率を達成するのに役立ちますが、テスト ケースが複雑になったり重複する可能性があり、メンテナンスに影響を与える場合があります。
- テスト スイートの保守性- UTA は主な実行パスだけをカバーする比較的少数のテストを作成します。このオプションを有効にすると、より単純で保守性の良いテストを作成するのに役立ちますが、カバレッジ率は低くなります。モックの初期化 - モックの初期化方法を指定します。
- テスト メソッド内で設定 - テスト対象オブジェクトおよびその依存関係をテスト メソッド内で宣言して初期化することでモックを初期化します。
- @InjectMocks の使用 - @InjectMocks アノテーションを使用してモック インジェクションを実行するフィールドをマークし、@Mock を使用して依存関係をマークすることでモックを初期化します。詳細については「モック初期化の設定」を参照してください。次のテスト ケースを作成: - テスト ケースを作成するメソッドを選択します。 [すべて選択]、[すべて選択解除]、または [変更の選択 (*)] ボタンを使用してリスト内の選択項目を更新できます。[変更の選択 (*)] ボタンは、ソース管理システムで変更されたメソッド (アスタリスクが付いたメソッド) だけを選択します。
注意:バージョン 2020.3 より前の Intellij の制約により、更新されたファイルおよびメソッドを検出する際、ソース管理システムに追加されていない新規ファイルが検出されない場合があります。
変更されたメソッド検出機能が正しく動作するには、Eclipse および IntelliJ がプロジェクトを Git プロジェクトとして認識できる必要があります。
- [OK] をクリックします。UTA の動作:
- UTA ファイル内の選択されたすべてのメソッド (すでにテストが存在するメソッドも含む) に対して新規テスト ケースを追加します。
- テストを実行してアサーションを作成します。
- テストを確認し、必要に応じて値やアサーションを変更します。
- UTA を使用してテストを実行し、カバレッジ情報と可能な改善に関する推奨事項を収集します (詳細については「単体テスト アシスタントを使用した単体テストの実行」を参照)。
複数のファイルに対してテスト スイートを作成
複数のファイルに対してテスト ケースを一括で作成することもできます。
- テスト ケースを作成するファイル、パッケージ、プロジェクトを右クリックします。また、同一クラス内の個々のメソッドを選択することもできます (クラスが異なるメソッドを選択した場合、またはメソッドとクラスまたはパッケージを選択した場合、テスト ケースは作成されません)。
[単体テスト] > [テスト スイートの作成] をクリックして[単体テスト アシスタント - テスト スイートの作成] ダイアログを開きます。
- テスト作成オプションを設定します。
- テスト スイートの最適化- 選択されたメソッドに対してテストを作成する際の優先順位を指定します。
- 最大コード カバレッジ - UTA はできるだけ多くのメソッド実行パスをカバーするのに必要な数のテストを作成します。このオプションを有効にすると、最大のカバレッジ率を達成するのに役立ちますが、テスト ケースが複雑になったり重複する可能性があり、メンテナンスに影響を与える場合があります。
- テスト スイートの保守性- UTA は主な実行パスだけをカバーする比較的少数のテストを作成します。このオプションを有効にすると、より単純で保守性の良いテストを作成するのに役立ちますが、カバレッジ率は低くなります。 モックの初期化 - モックの初期化方法を指定します。
- テスト メソッド内で設定 - テスト対象オブジェクトおよびその依存関係をテスト メソッド内で宣言して初期化することでモックを初期化します。
- @InjectMocks の使用 - @InjectMocks アノテーションを使用してモック インジェクションを実行するフィールドをマークし、@Mock を使用して依存関係をマークすることでモックを初期化します。詳細については「モック初期化の設定」を参照してください。- 次のテスト ケースを作成 - テスト ケースを作成するメソッドを選択します。
- すべて選択 - 選択対象内のすべてのソース ファイルに対してテスト ケースが作成されます。
- 変更されたメソッドだけ - 選択対象内の変更されたメソッドに対してだけテスト ケースが作成されます。注意:
括弧内の数字は、テストが作成されるファイル数の推測値です。テスト作成プロセスでは、より詳細なコードの解析とテスト ケースの最適化が行なわれるため、実際にテストが作成されるファイル数は異なる場合があります。
バージョン 2020.3 より前の Intellij の制約により、更新されたファイルおよびメソッドを検出する際、ソース管理システムに追加されていない新規ファイルが検出されない場合があります。
- 変更されたメソッド検出機能が正しく動作するには、Eclipse および IntelliJ がプロジェクトを Git プロジェクトとして認識できる必要があります。
- テスト スイートの最適化- 選択されたメソッドに対してテストを作成する際の優先順位を指定します。
- (任意) [ライセンス使用状況のサマリー] オプションの上にカーソルを位置付け、選択されたリソースのテスト ケース作成に必要な見積りトークン数を表示します。テストが生成されると、サマリー ダイアログが開き、実際に消費されたトークンの数と、残りのトークンの数が表示されます (「ライセンス」を参照)。
- [OK] をクリックします。UTA の動作:
- テストできないファイルやテスト クラスがすでに存在するファイルをスキップしてテスト ケースを作成します。
- テストを実行してアサーションを作成します。
- UTA を使用してテストを実行し、カバレッジ情報と可能な改善に関する推奨事項を収集します (詳細については「単体テスト アシスタントを使用した単体テストの実行」を参照)。
ライセンス
複数のファイルに対するテスト ケースの作成には、「Bulk creation」ライセンス機能が必要です。この機能は、テスト ケースが生成されたファイル数をモニターするライセンス トークンを提供します (トークンの数は、ライセンス契約に依存します)。複数のファイルに対してテスト ケースの作成を行うと、UTA は選択された .java ファイルごとに 1 つのトークンを消費します。
- UTA がテスト ケースを生成しなかったファイル (インターフェイスや抽象クラスなど) については、トークンは消費されません。
- 特定の java ファイルに対して 1 回トークンが消費されると、最初のテストが削除されていても、テストの再生成によってトークンは消費されません。