このセクションの内容
単体テスト アシスタントは、テストを依存対象から分離するためのモック オブジェクトの作成を容易にします。テストが生成されると、UTA は自動的にモックを作成します。モックは、テストには利用できない外部インターフェイスなど、実際の複雑なオブジェクトの振る舞いをシミュレートします。これによって、テストに余分なコードを追加することなく、個別にテストを実行できます。
java.lang.Object クラスの以下のメソッドに対しては、UTA はモックを自動生成しません。
|
UTA によって作成されたモックには、変更可能なデフォルト値が含まれています。
@Mock
でアノテートされたフィールドに対して適用されます。デフォルトでは、UTA はテスト対象オブジェクトおよびその依存関係をテスト メソッド内で宣言して初期化することでモックを初期化します。 テスト ケースを一括で作成する場合、テスト対象オブジェクトに @InjectMocks アノテーションを使用し、オブジェクトのすべての依存関係に @Mock を使用して、テスト対象オブジェクトと依存関係をクラス レベルで初期化するよう指定できます。それには、[単体テスト アシスタント - テスト ケースの追加] ダイアログの [@InjectMocks の使用] オプションを有効にします (「テスト スイートの作成」を参照)。
このオプションが有効な場合、UTA は以下を実行します。
setupMocks
メソッドを追加します。これにより、追加されたアノテーションに基づいてテスト対象オブジェクトとその依存関係が初期化されます。 以下に対しては、@InjectMocks アノテーションはサポートされていません。
@InjectMocks アノテーションは、Mockito 1.8.3 以降で利用可能です。詳細については https://www.javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/InjectMocks.html を参照してください。
特定の静的メソッドに対してモックを作成するよう UTA を設定できます。
[モックする静的メソッドおよびコンストラクター] テーブルにモックする静的メソッドおよび/またはコンストラクターのリストを設定します。[新規] をクリックし、メソッドの修飾名またはワイルドカードを使用したパターンを指定します。UTA はこのテーブルで指定された静的メソッドだけをモックします。
または、テストを実行した後に静的メソッドをリストに追加することもできます (詳細は「単体テスト アシスタントを使用した単体テストの実行」を参照)。実行フロー内の静的メソッドを表すノードを右クリックし、[モック可能なメソッドのパターンを追加] オプションをクリックします。[静的メソッドのモック] オプションをオンにすると、選択されたメソッドの呼び出しをモックするようコードが変更されますが、メソッドはテーブルに追加されません。詳細については「単体テスト アシスタントを使用した単体テストの実行」を参照してください。
テスト作成中に、テスト対象コード内で指定されたメソッドの呼び出しが検出された場合、生成されるテスト テンプレートにモックが追加されます (「基本的な単体テストの作成」を参照)。
Mockito によってサポートされないケースの詳細については「Mockito による static およびコンストラクターのモックの制約」を参照してください。 |