このセクションでは、単体テスト アシスタントを設定する方法を説明します。
このセクションの内容
UTA の全般的なオプションを設定するには、[Parasoft] メニューの [設定] > [単体テスト アシスタント] をクリックします。
UTA で作成したテストを保存する場所のルート ディレクトリを指定します。デフォルトでは、[プロジェクト設定に基づく] オプションがオンであり、プロジェクトの設定を読み取ってテストを保存する場所を決定します。プロジェクトにテストの場所が指定されていない場合、プロジェクトの設定を更新してテスト ソース フォルダーを指定するか、いずれかの事前定義済みパターンに切り替えるか、以下の変数を使用して手動でパターンを作成します。
${project_name}
- テスト対象クラスを含むプロジェクト (Intelli の場合はモジュール) の名前${source_folder}
- プロジェクトのソース ファイルを含むフォルダーの名前
このオプションを使用すると、テストのパッケージおよびクラス名のパターンを指定できます。デフォルトのパターンは "${package_name}.${class_name}${test_kind}Test" であり、テストをテスト対象クラスと同じパッケージに含め、クラス名に "${test_kind}Test" という接尾辞を付加します。以下の変数を使用してカスタム パターンを指定することもできます。
${class_name}
- テスト対象クラスの名前${package_name}
- テスト対象クラスを含むパッケージの名前${test_kind}
- テスト タイプの名前。これはファイル名に追加されます。この変数は次の値を取ることができます:
- Spring
- Spring テストを JUnit 4 および 5 の他のテストと区別します。
- Parameterized
- パラメータライズド テストを JUnit 4 の通常のテストと区別します。JUnit 5 では、通常のテスト ケースとパラメータライズされたテスト ケースが同じファイルに追加されます。
Spring テストまたはパラメータライズド テスト以外のテストでは、${test_kind}
変数は空文字に解決されます。
UTA が新規テストの作成に使用するテスト フレームワークを指定します。JUnit 4 または JUnit 5 を選択できます。
private メソッドの単体テストを作成します。このオプションがオンの場合:
[テスト スイートの作成] オプションで作成されたテスト スイートの実行の制限時間をミリ秒単位で指定します。制限時間を超過した場合、テスト実行が中止され、テスト スイートは失敗します。また、エラー情報が UTA インターフェイスの推奨事項として表示されます。「テスト スイートの作成」を参照してください。
このオプションがオンの場合、UTA は基本的なテスト ケースを作成する際、コードのコメントとして自動的にアサーション テンプレートを生成します。詳細は「基本的な単体テストの作成」を参照してください。
[テスト スイートの作成] オプションを使用して作成されたテスト スイートには、このオプションは適用されません。 |
このオプションがオンの場合、カバレッジを増加させるテスト ケースだけが一括作成時に追加されます (「複数のファイルに対してテスト スイートを作成」を参照)。
このオプションが有効な場合、UTA は以下を実行します。
詳細については「ファクトリ メソッドの設定」を参照してください。
このオプションがオンの場合、UTA はパラメータライズド テスト ケースを作成するためのアクション リンクを表示します。「パラメータライズされた単体テストの作成」を参照してください。
パラメータライズド テストは、[新規テストのテスト フレームワーク] オプションで設定したテスト フレームワークに依存します。
[テスト スイートの作成] オプションを使用して作成されたテスト スイートには、このオプションは適用されません。 |
パラメータライズド テスト ケース作成のための入力データを設定します。
1 つのテスト ケースに対して作成されるパラメーター バリアントの最大行数を指定します。
テスト ケースが保存される場所を指定します。ドロップダウン メニューから [コード] または [CSV] を選択します。
|
[タイプの選択] ドロップダウン メニューからデータ タイプを選択し、リストの値を追加、編集、削除することで、デフォルトの値のリストをカスタマイズできます。[検索] フィールドを使用すると、特定の値をすばやく検索できます。
新しい値を追加する場合、ファイルが正しく生成されるよう、値の文字エンコーディングは、ファイルの保存時に使用される文字エンコーディングと一致していなければなりません。 |
このオプションがオンの場合、UTA は Spring テスト ケースを作成するためのアクション リンクを表示します。「Spring 単体テストの作成」を参照してください。
[テスト スイートの作成] オプションを使用して作成されたテスト スイートには、このオプションは適用されません。 |
Spring テスト作成時に ContextConfiguration アノテーションに含める属性を指定します。「ContextConfiguration アノテーションによる Spring テストの設定」を参照してください。
UTA 実行モニター オプションを設定すると、テスト実行時のデータ収集の制限値を指定できます。さらに、制限を超過するのを防ぐため、UTA によるテスト実行時にモニターから除外するパッケージやクラスを指定できます。
UTA のモック オプションを設定するには、[Parasoft] メニューの [設定] > [単体テスト アシスタント] > [実行モニター] をクリックします。
モニターから除外するパッケージおよびクラスのリストを指定します。[新規] をクリックし、パッケージまたはクラスの修飾名を指定します (ワイルド カードはサポートされていません)。
これらのオプションを設定すると、実行時のデータ収集の制限値を指定できます。
UTA のモック オプションを設定するには、[Parasoft] メニューの [設定] > [単体テスト アシスタント] > [モック] をクリックします。
テストの作成および実行時にオブジェクトのモックを有効または無効にします。
ヘルパー メソッドの使用を有効または無効にします。このオプションが有効な場合、生成されるテスト クラスは、通常のテスト メソッドとオブジェクトを準備するがアサーションを作成しないヘルパー メソッドを分離します。
バージョン 2022.1 以降、static メソッドおよびコンストラクターのモックは Mockito で作成されます。この機能を利用するには、プロジェクトを更新して static メソッドおよびコンストラクターをサポートするバージョンの Mockito をインクルードする必要があります。手動で作成したモックについて Powermock with Mockito を引き続き利用したい場合、Mockito バージョン 3.12.4 を使用することを推奨します。Jtest 2022.1 より前のバージョンまたは手動で作成され、PowerMock を使用するテストは、テストが失敗しないよう更新する必要があります。詳細は「PowerMock with mockito-inline の実行でテストが失敗する場合」を参照してください。 |
UTA はテーブルで指定されたパターンに一致するメソッドを自動的にモック化します。新しいメソッドまたはパターンを追加するには、[新規] をクリックします。パターンの比較には修飾されたメソッド名およびワイルドカード (*) を使用します。.*
または <init>
で終わるパターンはコンストラクターに一致します。たとえば、次の設定は以下をモックします。
DAO
クラスのすべての静的メソッドおよびコンストラクターInternalUtil
クラスのすべてのメソッド指定されたパターンがクラスのすべてのメソッドに一致する場合、UTA は mockStatic()
メソッドを使用してクラスの静的メソッドをモックします。mockStatic() メソッドの詳細については、「mockStatic」を参照してください。
テーブルで指定された static メソッドおよびコンストラクターだけがモックされます。UTA はテスト作成時に自動的にモックをテスト テンプレートに追加するか、テスト実行後にモックを追加するのに役立つ推奨事項を表示します (「モックの作成」を参照)。
テスト実行後に UTA が表示する推奨事項のタイプを指定します。
UTA の推奨事項を設定するには、[Parasoft] メニューの [設定] > [推奨事項] をクリックします。
以下のタイプの推奨事項を有効または無効にできます。
UTA に表示される推奨事項のサンプルは、「単体テスト アシスタントを使用した単体テストの実行」を参照してください。
テスト テンプレートを使用すると、テスト クラスの構造を制御し、ユーザー固有のテストに必要な共通設定を指定できます。たとえば、セットアップ メソッドを追加したり、基底クラスから拡張したりできます。
テスト テンプレートが原因でコンパイル エラーが発生した場合、結果としてテストが生成されない可能性があります。生成されたファイルにエラーがあることを示すメッセージがコンソールに表示されます。 |
UTA テスト テンプレートを設定するには、[Parasoft] メニューの [設定] > [テスト テンプレート] をクリックします。
テンプレートの編集
[テンプレートの編集] ダイアログでは、テンプレートの作成/編集を行うことができます。
[テンプレートの編集] ダイアログでは、以下を設定する必要があります。
以下の変数が認識されます。
${className}
- テスト対象クラスの修飾されていない名前です。例: MyClass
${qualifiedClassName}
- テスト対象クラスの完全修飾名です。例: com.company.MyClass
${author}
- DTP 設定で指定されたユーザー名です。${testClassName}
- 作成されるテストの修飾されていない名前です。例: MyClassTest
次のサンプルは、共通クラス設定の実装を示しています。
共通基底クラス拡張:
import com.company.BaseTestClass; public class ${testClassName} extends BaseTestClass { } |
静的モックのためのセットアップ/ティアダウン メソッドを追加:
import org.junit.jupiter.api.*; import static org.mockito.Mockito.*; import java.util.*; public class ${testClassName} { Set<ScopedMock> staticMocks = new HashSet<>(); @BeforeEach public void setup() { var mocked = mockStatic(MyUtilClass.class); staticMocks.add(mocked); mockUtil.when(MyUtilClass::getUserName).thenReturn("testUser"); } @AfterEach public void teardown() { staticMocks.forEach(i -> i.close()); staticMocks.clear(); } } |
以下の変数が認識されます。
${methodSignature}
- パラメーターの型を含むテスト対象メソッド名です。例: calc(int, int, String)
${qualifiedMethodSignature}
- パラメーターの型を含むテスト対象メソッドの完全修飾名です。例: com.company.MyClass#calc(int, int, String)
この変数は、Javadoc の@see タグで使用すると便利です。
${author}
- DTP 設定で指定されたユーザー名です。
${testAnnotations}
(必須) - テスト メソッドに追加される自動生成アノテーションのプレースホルダーです。たとえば、JUnit テストには @Test アノテーションが必要です。この変数の前または後ろにカスタム アノテーションを追加できます。
${testName}
(必須) - テスト メソッドの自動生成される名前です。
${testBody}
(必須) - テストの本文を構成する自動生成ステートメントのプレースホルダーです。生成されるすべてのテストに含めるカスタム コードをこの変数の前または後ろに追加できます。
${testName}
変数を含めるか、クラス テンプレートにコードを追加することが推奨されます。次のサンプルは、フィールドを定義して設定するクラスおよびメソッド テンプレートを示しています。
クラス テンプレート
public class ${testClassName} { private CustomField customField = null; } |
メソッド テンプレート
${testAnnotations} public void ${testName}() throws Exception { customField = new CustomField(42, "Testing example"); customField.init(); ${testBody} } |