単体テスト フレームワーク
単体テスト フレームワークは、Visual Studio での単体テストをサポートします。単体テストをコーディングする場合は、Microsoft.VisualStudio.TestTools.UnitTesting 名前空間のクラスとメンバを使用します。単体テストを最初から作成する場合や、テストしているコードから生成された単体テストを調整する場合に、これらを使用できます。
要素のグループ
単体テスト フレームワークの概要を明らかにするために、このセクションでは、UnitTesting 名前空間の要素を関連機能のグループに整理します。
メモ : |
---|
名前に文字列
|
データ ドリブン テストで使用する要素
データ ドリブン 単体テストを設定するには、次の要素を使用します。詳細については、「データ ドリブン単体テストのコーディング」および「方法 : データ ドリブン単体テストを構成する」を参照してください。
呼び出し順序を確立するために使用する属性
次のいずれかの属性で装飾されたコード要素は、指定した時点で呼び出されます。詳細については、「単体テストの構造」を参照してください。
アセンブリ用
AssemblyInitialize はアセンブリがロードされた直後、AssemblyCleanup はアセンブリがアンロードされる直前に呼び出されます。
クラス用
ClassInitialize はクラスがロードされた直後、ClassCleanup はクラスがアンロードされる直前に呼び出されます。
テスト メソッド用
テスト クラスおよびメソッドの識別に使用する属性
各テスト クラスには TestClass 属性が必要です。また、各テスト メソッドには TestMethod 属性が必要です。詳細については、「単体テストの構造」を参照してください。
アサート クラスおよび関連する例外
単体テストでは、さまざまな Assert ステートメント、例外、および属性を使用することによって、特定のアプリケーション動作を検査できます。詳細については、「Assert クラスの使用」を参照してください。
TestContext クラス
テスト コンテキスト クラスのプロパティには、現在のテスト実行に関する情報が格納されます。たとえば、TestContext.DataRow プロパティおよび TestContext.DataConnection プロパティには、データ ドリブン単体テストのテストで使用される情報が含まれます。
テストの識別および並べ替えのための属性
次の属性およびそれらの属性に割り当てられる値は、Visual Studio で、特定のテスト メソッドの [プロパティ] ウィンドウに表示されます。
これらの属性は、単体テストのコードからアクセスされることは目的としていません。その代わりに、Visual Studio の IDE、または Team System テスト エンジンが単体テストを使用または実行するときの方法に影響します。
たとえば、これらの属性の一部は、[テスト マネージャ] ウィンドウおよび [テスト結果] ウィンドウの列として表示されます。つまり、これらを使用して、テストおよびテスト結果をグループ化したり並べ替えたりできます。
このような属性の 1 つに TestPropertyAttribute があります。この属性を使用して、任意のメタデータを単体テストに追加できます。たとえば、単体テストを [TestProperty("TestPass", "Accessibility")]
とマークして、このテストで扱うテスト パスの名前を格納するために使用できます。また、[TestProperty("TestKind", "Localization")]
を使用して、テストの種類のインジケータを格納できます。この属性を使用して作成するプロパティ、および割り当てるプロパティ値は、どちらも Visual Studio の [プロパティ] ウィンドウの [各テストで特有] という見出しの下に表示されます。
テスト構成クラス
レポートの生成に使用する属性
このセクションの属性は、Team Foundation Server チーム プロジェクトのプロジェクト階層内のエンティティに、この属性が修飾するテスト メソッドを関連付けます。詳細については、「方法 : テスト結果の報告を有効にする」を参照してください。
プライベート アクセサと共に使用するクラス
「方法 : プライベート メソッドをテストする」および「方法 : プライベート アクセサを再生成する」で説明されているように、プライベート メソッドの単体テストを生成できます。生成するとプライベート アクセサ クラスが作成され、このクラスにより、PrivateObject クラスのオブジェクトがインスタンス化されます。PrivateObject クラスは、プライベート アクセサ プロセスの一部としてリフレクションを使用するラッパー クラスです。これは PrivateType クラスに似ていますが、PrivateType クラスは、プライベート インスタンス メソッドの呼び出しではなく、プライベート静的メソッドの呼び出しに使用されます。
参照
関連項目
Microsoft.VisualStudio.TestTools.UnitTesting