データ ドリブン ユニット テストのコーディング
更新 : 2007 年 11 月
データ ドリブン単体テストに必要な属性が単体テストに含まれる場合、その単体テストはデータ ドリブン テストとして機能します。これらの属性とその値を割り当てるには、[プロパティ] ウィンドウを使用する方法と、テストのコードに属性を直接追加する方法があります。
単体テストのプロパティを編集して、単体テストをデータ ドリブンとして構成する方法の詳細については、「方法 : データ ドリブン ユニット テストを構成する」を参照してください。
このトピックでは、DataSource 属性および TestContext クラスを使用して、単体テストをデータ ドリブン単体テストとしてコーディングする方法について説明します。
データ ソースからのデータの使用
データ ドリブン単体テストを実行しているとき、データはデータ ソースの行から取得されます。データは、TestContext クラスの DataRow プロパティおよび DataConnection プロパティを通じて、実行している単体テストで利用できるようになります。
次の例では、DataRow() は DataRow 型であり、LastName は、データ ドリブン テストの現在の反復処理に関連付けられた行の有効な列の名前です。
TestContext.DataRow["LastName"]
LastName は名前で列を参照しますが、列番号で列を参照することもできます。
テーブルの各行では、任意の数の列にアクセスできます。たとえば、データの複数の列を一度に取得し、それらを計算で使用し、その結果を予測される戻り値が含まれる最終列と比較できます。
データ ドリブン単体テストのコーディング
データ ドリブン単体テストを作成するには、手動で作成した単体テストまたは生成された単体テストのいずれかで開始できます。詳細については、「方法 : 単体テストを編集する」および「方法 : 単体テストを生成する」を参照してください。
既存の単体テストを構成するには、使用するデータ ソース、そのデータへのアクセス方法、および入力としてテストで使用する行を持つテーブルを定義する属性を追加します。これらの属性を構成する詳細については、「方法 : データ ドリブン ユニット テストを構成する」を参照してください。
たとえば、Northwind データベースのデータを使用するデータ ドリブン単体テストのコード例を次に示します。
namespace TestProject1
{
[TestClass]
public class TestClass
{
private TestContext m_testContext;
public TestContext TestContext
{
get { return m_testContext; }
set { m_testContext = value; }
}
[TestMethod]
[DeploymentItem("FPNWIND.MDB")]
[DataSource("System.Data.OleDb", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"FPNWIND.MDB\"", "Employees", DataAccessMethod.Sequential)]
public void TestMethod()
{
Console.WriteLine( "EmployeeID: {0}, LastName: {1}", TestContext.DataRow["EmployeeID"], TestContext.DataRow["LastName"] );
}
}
}
この例のテスト メソッドのコードでは、データ ソースの "Employees" テーブルの LastName 列および EmployeeID 列からの値を使用します。テスト メソッドでは、TestContext プロパティを通じてこれらの値にアクセスします。このプロパティは、そのメソッドを含むテスト クラスで定義されています。