概要

単体テスト アシスタントを使用すると、単体テスト アシスタント ビューまたは IDE のコンテキスト メニューの [テスト スイートの作成] オプションをクリックすることで、簡単にテスト スイートを作成できます。[テスト スイートの作成] オプションをクリックすると、UTA は以下を行います。

  1. 選択されたスコープ内のメソッドを解析する。
  2. テスト ケースを作成する。
  3. [トラックしてアサーションを作成] 機能を使用して作成済みテストを実行し、アサーションを追加する (「オブジェクトの変更の追跡とアサーションの作成」を参照)。
    (info) Eclipse IDE を使用している場合、アサーションを追加するには、[Build Automatically] オプション ([プロジェクト] メニューの[Build Automatically]) をオンにする必要がありますこのオプションがオフの場合、テスト実行時にアサーションは追加されません。

UTA によって作成されたテスト ケースをカスタマイズするには、テスト コードの値とアサーションを確認し、必要に応じて変更します。さらに、[実行] オプションでテストを再実行し、UTA の推奨事項を使用してテスト ケースを拡張できます (「単体テスト アシスタントを使用した単体テストの実行」を参照)。

最小 RAM 要件

一括作成を行う場合、UTA は 2 GB の RAM を必要とします。大規模なコードに対して複数のテスト ケースを作成する場合、IDE が使用する RAM を 4 GB に設定することを推奨します。

IntelliJ IDEA での一括作成

IntelliJ の [Synchronize files on frame or editor tab activation] オプションをオフにすることを推奨します。このオプションがオンの場合、UTA はテスト作成プロセスを異常終了してから再開する場合があり、これは単一のテストの生成が失敗したり、テストが不完全になったりする原因になる可能性があります。オプションをオフにするには、次の操作を行います。

  1. IntelliJ IDEA で [File] メニューの [Settings] をクリックします。
  2. [Appearance & Behavior] > [System Settings] を選択します。
  3. [Synchronize files on frame or editor tab activation] オプションをオフにします。

private メソッド

UTA の設定で [private メソッドのテストを作成] オプションが有効な場合 (「設定の構成」を参照)、UTA は選択されたクラスの private メソッドに対するテストを作成します。デフォルトでは、[private メソッドのテストを作成] オプションはオフです。業界のベスト プラクティスでは、private メソッドを直接テストするのではなく、private メソッドを呼び出すアクセス可能なメソッドのテストを作成することで private メソッドをテストするよう推奨されています。

タイムアウト

UTA 設定の [テストにタイムアウトを設定 (ミリ秒)] オプションを使用すると、テスト スイートの実行に制限時間を指定できます (「テスト作成オプション」を参照)。

1 つのファイルに対してテスト スイートを作成

  1. 以下のいずれかの方法で [単体テスト アシスタント - テスト スイートの作成] ダイアログを開きます。

    • エディターでクラスを選択し、単体テスト アシスタント ビューの [テスト スイートの作成] アクション リンクをクリックします。

        

    • プロジェクト エクスプローラーでファイルを右クリックし、コンテキスト メニューの [単体テスト] > [テスト スイートの作成] をクリックします。
       

  2.   テスト作成オプションを設定します。

    • テスト スイートの最適化- 選択されたメソッドに対してテストを作成する際の優先順位を指定します。
      - 最大コード カバレッジ - UTA はできるだけ多くのメソッド実行パスをカバーするのに必要な数のテストを作成します。このオプションを有効にすると、最大のカバレッジ率を達成するのに役立ちますが、テスト ケースが複雑になったり重複する可能性があり、メンテナンスに影響を与える場合があります。
      - テスト スイートの保守性- UTA は主な実行パスだけをカバーする比較的少数のテストを作成します。このオプションを有効にすると、より単純で保守性の良いテストを作成するのに役立ちますが、カバレッジ率は低くなります。

    • モックの初期化 - モックの初期化方法を指定します。
      - テスト メソッド内で設定 - テスト対象オブジェクトおよびその依存関係をテスト メソッド内で宣言して初期化することでモックを初期化します。
      - @InjectMocks の使用 - @InjectMocks アノテーションを使用してモック インジェクションを実行するフィールドをマークし、@Mock を使用して依存関係をマークすることでモックを初期化します。詳細については「モック初期化の設定」を参照してください。

    • テスト テンプレート - 新規クラスの作成に使用するテンプレートを指定します。詳細についてはテスト テンプレートの設定」を参照してください。
    • 次のテスト ケースを作成: - テスト ケースを作成するメソッドを選択します。[すべて選択]、[すべて選択解除]、または [変更の選択 (*)] ボタンを使用してリスト内の選択項目を更新できます。[変更の選択 (*)] ボタンは、ソース管理システムで変更されたメソッド (アスタリスクが付いたメソッド) だけを選択します。
      注意: 変更されたメソッド検出機能が正しく動作するには、Eclipse および IntelliJ がプロジェクトを Git プロジェクトとして認識できる必要があります。

  3. [OK] をクリックします。UTA の動作:
    1. UTA ファイル内の選択されたすべてのメソッド (すでにテストが存在するメソッドも含む) に対して新規テスト ケースを追加します。
    2. テストを実行してアサーションを作成します。
  4. テストを確認し、必要に応じて値やアサーションを変更します。

     
  5. UTA を使用してテストを実行し、カバレッジ情報と可能な改善に関する推奨事項を収集します (詳細については「単体テスト アシスタントを使用した単体テストの実行」を参照)。

複数のファイルに対してテスト スイートを作成

複数のファイルに対してテスト ケースを一括で作成することもできます。

カバレッジを増加させるテスト ケースだけを追加する

UTA の設定でこのオプションをオンにすると、カバレッジを増加させるテスト ケースだけを追加できます (「テスト生成オプション」を参照)。

  1. テスト ケースを作成するファイル、パッケージ、プロジェクトを右クリックします。また、同一クラス内の個々のメソッドを選択することもできます (クラスが異なるメソッドを選択した場合、またはメソッドとクラスまたはパッケージを選択した場合、テスト ケースは作成されません)。
  2. [単体テスト] > [テスト スイートの作成] をクリックして[単体テスト アシスタント - テスト スイートの作成] ダイアログを開きます。

  3. テスト作成オプションを設定します。
    • テスト スイートの最適化- 選択されたメソッドに対してテストを作成する際の優先順位を指定します。
      - 最大コード カバレッジ - UTA はできるだけ多くのメソッド実行パスをカバーするのに必要な数のテストを作成します。このオプションを有効にすると、最大のカバレッジ率を達成するのに役立ちますが、テスト ケースが複雑になったり重複する可能性があり、メンテナンスに影響を与える場合があります。
      - テスト スイートの保守性- UTA は主な実行パスだけをカバーする比較的少数のテストを作成します。このオプションを有効にすると、より単純で保守性の良いテストを作成するのに役立ちますが、カバレッジ率は低くなります。
    • モックの初期化 - モックの初期化方法を指定します。
      - テスト メソッド内で設定 - テスト対象オブジェクトおよびその依存関係をテスト メソッド内で宣言して初期化することでモックを初期化します。
      - @InjectMocks の使用 - @InjectMocks アノテーションを使用してモック インジェクションを実行するフィールドをマークし、@Mock を使用して依存関係をマークすることでモックを初期化します。詳細については「モック初期化の設定」を参照してください。

    • テスト テンプレート - 新規クラスの作成に使用するテンプレートを指定します。詳細についてはテスト テンプレートの設定」を参照してください。
    • 次のテスト ケースを作成 - テスト ケースを作成するメソッドを選択します。
      - すべて選択 - 選択対象内のすべてのソース ファイルに対してテスト ケースが作成されます。
      - ローカルで変更されたメソッド - 選択対象内の変更されたメソッドに対してだけテスト ケースが作成されます。 
      • 次と比較時 - ディスクのファイルと指定されたコミットの内容を比較したときに見つかったすべての変更されたメソッドに対してテストが作成されます。
      • 次からの現行ブランチの分岐以降 - 指定されたブランチからプロジェクトの現行ブランチが分岐した後、現行ブランチで見つかったすべての変更されたメソッドに対してテストが作成されます。現行ブランチの作成元ブランチを指定する必要があります。

      - コミットまたはブランチ - [次と比較時] および [次からの現行ブランチの分岐以降] 設定で使用するコミット、ブランチ、タグを指定します。コミットまたはブランチ ドロップダウン メニューには入力履歴が残ります。選択肢には [次と比較時] 設定のための 2 つのプリセット値が含まれます。

      • ローカル ブランチでの最新コミット - ローカルで変更されたコミット前のコードに対してテストが作成されます。
      • リモート ブランチでの最新コミット - ローカルで変更されたコミット前のコードおよびまだリモート ブランチにプッシュされていないローカル コミットに含まれる変更に対してテストが作成されます。

      注意: 

      • Git reflog 参照はサポートされていません。

      • [ローカルで変更されたメソッド] および [コミットまたはブランチ] 設定を使用する場合、以下の推奨事項を考慮してください。

        • ローカルな変更だけがあり、影響を受けるコードに対してコミット前にテストを生成したい場合、[次と比較時] および [ローカル ブランチでの最新コミット] 設定を使用することを推奨します。

        • まだプッシュされていないローカル コミットがあり、ローカルな変更に加えてそれらのコミットに対してテストを生成したい場合、[次と比較時] および [リモート ブランチでの最新コミット] 設定を使用することを推奨します。

        • フィーチャーまたは開発ブランチとしてブランチにコミットをプッシュ済みであり、フィーチャーまたは修正が完了しており、該当ブランチで行われたすべての変更に対してテストを生成したい場合、[次からの現行ブランチの分岐以降] 設定を使用し、現行ブランチの親ブランチを指定することを推奨します。たとえば、master から分岐した "feature/foo" フィーチャー ブランチを使用している場合、"master" を指定します。

      • 選択されたコードに対して Git リポジトリが設定されていない場合、[ローカルで変更されたメソッド] および [コミットまたはブランチ] 設定は使用できません。
  4. (任意) [ライセンス使用状況のサマリー] オプションの上にカーソルを位置付け、選択されたリソースのテスト ケース作成に必要な見積りトークン数を表示します。テストが生成されると、サマリー ダイアログが開き、実際に消費されたトークンの数と、残りのトークンの数が表示されます (「ライセンス」を参照)。
  5. [OK] をクリックします。UTA の動作:
    1. テストできないファイルやテスト クラスがすでに存在するファイルをスキップしてテスト ケースを作成します。
    2. テストを実行してアサーションを作成します。
  6. UTA を使用してテストを実行し、カバレッジ情報と可能な改善に関する推奨事項を収集します (詳細については「単体テスト アシスタントを使用した単体テストの実行」を参照)。

ライセンス

複数のファイルに対するテスト ケースの作成には、「Unit Test Single Class Creation」ライセンス機能が必要です。この機能は、テスト ケースが生成されたファイル数をモニターするライセンス トークンを提供します (トークンの数は、ライセンス契約に依存します)。複数のファイルに対してテスト ケースの作成を行うと、UTA は選択された .java ファイルごとに 1 つのトークンを消費します。

  • UTA がテスト ケースを生成しなかったファイル (インターフェイスや抽象クラスなど) については、トークンは消費されません。
  • 特定の java ファイルに対して 1 回トークンが消費されると、最初のテストが削除されていても、テストの再生成によってトークンは消費されません。
  • No labels