このセクションの内容
はじめに
追跡アクションを使用して、UTA が実行する解析を拡張できます。このアクションはオブジェクトをモニターし、選択されたメソッドの実行前後でのオブジェクトの状態を比較します。これによって、実行中に特定の値がどのように変更されるかがわかり、適切なアサーションを作成するのに役立ちます。以下の追跡アクションが UTA インターフェイスに表示されます。
- [メソッド名] のトラック - メソッドの呼び出しをモニターし、利用可能なアサーションを推奨事項ビューに表示します。即時修正を適用すると、推奨されるアサーションを使用して手動でテストを更新できます。「手動でのアサーションの作成」を参照してください。
[トラックしてアサーションを作成] - メソッドの呼び出しをモニターし、まだ追加されていない推奨されるアサーションをすべて自動的に適用します。このオプションは、パラメータライズド テストおよび実行が失敗したテストでは利用できません。
オブジェクトの変更の追跡
- UTA で新規テストを作成するか、既存のテストを開きます。
- テスト メソッドをクリックします。テスト メソッド名がテスト対象メソッド名に対応している場合、UTA はテスト対象メソッドを検出して、2 つのトラッキング オプションを表示します。メソッド呼び出しをトラックする [[メソッド名] のトラック] およびメソッド呼び出しをトラックして自動的にアサーションを作成する [トラックしてアサーションを作成] です。
テスト メソッド名と異なる名前のメソッドの呼び出しを追跡するには、エディターで特定のメソッド呼び出しを選択します。UTA インターフェイスには、自動的に検出されたテスト対象メソッドと選択したメソッドの両方に対して [[メソッド名] のトラック] アクションが表示されます。[トラックしてアサーションを作成] アクションも表示されるので、選択したメソッドを追跡して更新することができます。
- [トラック] アクション リンクをクリックします。UTA はテストを実行し、実行中に変更された値に関する情報を収集します。
- オブジェクトの変更に関する情報を参照します。[変数] タブには、実行中に使用された値に関する情報が表示されます。[>>] アイコンは、値が変更されたことを示します。
- [推奨事項] タブで利用可能なアサーションの情報を確認し、手動でアサーションを追加します (「手動でのアサーションの作成」を参照)。このステップは、[[メソッド名] のトラック] アクションで追跡を行った場合に必要です。
手動でのアサーションの作成
[推奨] タブおよび [変数] タブのどちらからもアサーションを作成できます。
- [推奨] タブで、[アサーションの作成] リンクをクリックします。
- [変数] タブで、アサーションを行う値を右クリックし、[アサーションの作成] をクリックします。
または、[コピー] オプションを使用して値をコピーし、手動でコードを入力することもできます。
検出された変更がアクセスできないフィールドで行われた場合、UTA はコードを手動で変更する必要があるアサーション テンプレートを生成します。
アクセスできないフィールドに対するアサーション テンプレートの生成を有効または無効にできます。詳細については「設定の構成」を参照してください。
複数のテストのアサーションを作成
追跡を行い、複数のテストのアサーションを自動生成することが可能です。
1 つのクラスの複数のテストのアサーションを作成するには、次の操作を行います。
- テスト クラスを開きます。
- テスト メソッドの外の任意の場所をクリックします。
- 単体テスト アシスタント ビューの [トラックしてアサーションを作成] アクションをクリックします。
異なるクラス、パッケージ、プロジェクトの複数のテストに対してアサーションを生成するには、次の操作を行います。
- プロジェクト エクスプローラーでクラス、パッケージ、プロジェクトを選択します。
- コンテキスト メニューの [単体テスト] > [トラックしてアサーションを作成] をクリックします。
アサーションのヒント
- UTA で複数のテストを作成する場合、最終的なテストでアサーションが重複するのを避けるため、UTA の設定で [Generate sample assertions] オプションをオフにすることを推奨します (「設定の構成」および「テスト スイートの作成」を参照)。
- [トラックしてアサーションを作成] アクションを使用する場合、アサーション生成プロセスの詳細を表示するため、コンソールの冗長レベルを高にするとよいでしょう (「ココンソールの冗長レベルのカスタマイズ」を参照)。コンソールにテスト ケースごとの生成されたアサーションの数および作成されなかったアサーションの詳細が表示されます。