方法: データ ドリブンのコード化された UI テストを作成する
Visual Studio Premium または Visual Studio Ultimate を使用して、コード化された UI テストを作成できます。このテストでは、アプリケーションのユーザー インターフェイス (UI) が正しく機能することをテストできます。 コード化された UI テストによって、アプリケーションのユーザー インターフェイス コントロールで操作が実行され、指定されたコントロールが正しい値で表示されることが検証されます。 コード化された UI テストを作成する方法の詳細については、「方法: コード化された UI テストを作成する」を参照してください。
指定されたデータを使用してコード化された UI テストを作成した後、コード化された UI テストを異なるデータのセットを使用して複数回実行し、さまざまな条件をテストできます。 これを行うには、データ ソースからパラメーター値を追加して、データ ドリブンのコード化された UI テストを作成します。 データ ソース内の各行は、コード化された UI テストのイテレーションです。 テストの総合結果は、すべてのイテレーションの結果に基づいています。 たとえば、1 つのテスト イテレーションが失敗すると、テスト全体の結果は失敗します。
データ ドリブン テストの一般的な情報については、「方法: データ ドリブン単体テストを作成する」を参照してください。
コード化された UI テストのメソッドまたはアサーションを記録することで生成すると、記録されたメソッド内で参照されているすべての定数がパラメーター クラスにパラメーター化されます。 たとえば、AddTwoNumbers という名前のメソッドを追加した場合、コード化された UI テスト フレームワークは AddTwoNumbersParams という名前の別のクラスを生成し、メソッドの記録時に使用した各定数値のこのクラスにフィールドを追加します。 AssertForAdd という名前のアサーション メソッドを生成した場合、フレームワークは、必要となる値に対して AssertforAddExpectedValues という名前のクラスを追加します。 これらのクラスは自動的に生成され、以下の手順で使用されます。
パラメーター用のデータ ソースをテストで使用できるようにするためのすべての変更は、テストのソース コード ファイル ( CodedUITest1.cs). UIMap.Designer.cs ファイルのコードは変更できません。
コード化された UI テストを作成したら、以下の手順に従って、データ ソースとパラメーターをテストに追加できます。 この例は、ソリューションに次のコード要素があることを前提としています。
CodedUITest1. という名前のコード化された UI テスト クラス
CodedUITestMethod1(). という名前のテスト メソッド
このテスト メソッドは、2 つの数値を加算する単純な計算アプリケーションを対象としており、2 つの数値が正しく加算され、このテストが成功したことを検証します。
データ ソースは、次のデータが含まれる .csv ファイルです。
Input1 |
Input2 |
ExpectedResult |
---|---|---|
3 |
4 |
7 |
5 |
6 |
11 |
1200 |
24000 |
25200 |
ファイルを作成し、テスト プロジェクトに追加します。
データ ドリブンのコード化された UI テストの作成
データ ドリブンのコード化された UI テストを作成するには
ソリューション エクスプローラーで、テスト プロジェクトを含むソリューションを開きます。
[テスト] メニューをクリックし、[ウィンドウ] をポイントし、次に [テスト ビュー] をクリックします。
[テスト ビュー] ウィンドウに、コード化された UI テストが表示されます。
[テスト ビュー] ウィンドウで、コード化された UI テスト メソッドを右クリックし、[プロパティ] をクリックします。
[プロパティ] ウィンドウが開きます。
コード化された UI テストに使用するデータ ソースを選択するには、[プロパティ] ウィンドウの [データ接続文字列] の右にある省略記号ボタン (…) をクリックします。
テスト データ ソース作成ウィザードが開きます。
使用するデータ ソースの種類を選択します。 この例では、.csv データ ソースの種類を選択します。 [次へ] をクリックし、.csv ファイルのパスとファイル名を入力して [完了] をクリックします。
これで、このテスト メソッドでデータ ソースを使用できるようになります。 TestContext.DataRow を使用すると、データ ソースからデータの現在の行にアクセスできます。 各行にアクセスするには、次の構文を使用します。
string paramVal = TestContext.DataRow["Input1"]
ソリューション エクスプローラーで、CodedUITest1.cs ファイルを開きます。 CodedUITestMethod1() メソッドに対して、次の変更を行います。
AddTwoNumbers メソッドを呼び出す前に次のコードを 2 行追加して、追加する番号の値を入力します。
this.UIMap.AddTwoNumbersParams.TextInput1EditText = TestContext.DataRow["Input1"].ToString(); this.UIMap.AddTwoNumbersParams.TextInput2EditText = TestContext.DataRow["Input2"].ToString();
AssertforAdd メソッドを呼び出す前に次のコードを追加して、Assert メソッドの値を入力します。
this.UIMap.AssertforAddExpectedValues.TextAnswerEditText = TestContext.DataRow["ExpectedResult"].ToString();
コード化された UI テスト メソッドは、パラメーターとデータ ソースを追加すると次のようになります。
[DeploymentItem("DataDriven.csv"), DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\DataDriven.csv", "DataDriven#csv", DataAccessMethod.Sequential), TestMethod] public void CodedUITestMethod1() { // To generate code for this test, select "Generate Code for // Coded UI Test" from the shortcut menu and select one of // the menu items. this.UIMap.AddTwoNumbersParams.TextInput1EditText = TestContext.DataRow["Input1"].ToString(); this.UIMap.AddTwoNumbersParams.TextInput2EditText = TestContext.DataRow["Input2"].ToString(); this.UIMap.AddTwoNumbers(); this.UIMap.AssertforAddExpectedValues.TextAnswerEditText = TestContext.DataRow["ExpectedResult"].ToString(); this.UIMap.AssertforAdd(); }
CodedUITest1.cs ソース コード ファイルへの変更を保存します。
コード化された UI テストを実行するには、[テスト ビュー] ウィンドウでコード化された UI テストを右クリックし、[選択範囲の実行] をクリックします。
テストを実行した後、[テスト結果] ウィンドウに、すべてのイテレーションの全体のテスト結果が表示されます。 各イテレーションの詳細を確認するには、[テスト結果] ウィンドウでテストをダブルクリックします。