単体テストでの Microsoft.VisualStudio.TestTools.UnitTesting のメンバーの使用

単体テスト フレームワークは、Visual Studio での単体テストをサポートしています。 単体テストをコーディングする場合は、<xref:Microsoft.VisualStudio.TestPlatform.UnitTestFramework> 名前空間のクラスとメンバーを使用します。 単体テストを最初から記述した場合、またはテスト中のコードから生成された単体テストを改良している場合、これらを使用することができます。

要素のグループ

単体テスト フレームワークの概要をより明確に説明するために、このセクションでは UnitTesting 名前空間の要素を関連する機能のグループごとにまとめています。

注意

名前が文字列 Attribute で終わる Attribute 要素は、使用するときに文字列 Attribute を付けても付けなくてもかまいません。 たとえば、次の 2 つのコード例は同じように機能します。

[TestClass()]

[TestClassAttribute()]

データ ドリブン テストで使用する要素

データ ドリブン単体テストを設定するには、次の要素を使用します。 詳細については、「方法: データ ドリブン単体テストを作成する」および「チュートリアル : データ ソースを定義するための構成ファイルの使用」を参照してください。

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.DataAccessMethod

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.DataSourceAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.DataSourceElement

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.DataSourceElementCollection

呼び出し順序を確立するために使用する属性

次のいずれかの属性で装飾されたコード要素は、指定した時点で呼び出されます。 詳細については、「単体テストの構造」を参照してください。

アセンブリの場合

AssemblyInitialize がアセンブリの読み込みの直後に、AssemblyCleanup がアセンブリのアンロードの直前に呼び出されます。

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.AssemblyInitializeAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.AssemblyCleanupAttribute

クラスの場合

ClassInitialize がクラスの読み込みの直後に、ClassCleanup がクラスのアンロードの直前に呼び出されます。

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.ClassInitializeAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.ClassCleanupAttribute

テスト メソッドの場合

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.TestInitializeAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.TestCleanupAttribute

テスト クラスとテスト メソッドの識別に使用する属性

各テスト クラスには TestClass 属性が必要であり、各テスト メソッドには TestMethod 属性が必要です。 詳細については、「単体テストの構造」を参照してください。

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.TestClassAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.TestMethodAttribute

単体テストでは、さまざまな種類の Assert のステートメント、例外、属性を使用することで、特定のアプリケーションの動作を確認できます。 詳細については、「Assert クラスの使用」を参照してください。

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.Assert

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.CollectionAssert

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.StringAssert

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.AssertFailedException

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.AssertInconclusiveException

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.UnitTestAssertException

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.ExpectedExceptionAttribute

TestContext クラス

次の属性とそれらに割り当てられた値は、Visual Studio で、特定のテスト メソッドの [プロパティ] ウィンドウに表示されます。 これらの属性は、単体テストのコードからアクセスするためのものではありません。 代わりに、Visual Studio の IDE、または Visual Studio テストエンジンのいずれかによる単体テストの使用法または実行方法に影響します。たとえば、これらの属性には、[テスト マネージャー] ウィンドウや [テスト結果] ウィンドウの列として表示されるものがあり、それらを使用してテストやテスト結果をグループ化したり並べ替えたりできます。 このような属性の 1 つに TestPropertyAttribute があります。この属性を使用して、任意のメタデータを単体テストに追加できます。 たとえば、これを使用し、単体テストを [TestProperty("TestPass", "Accessibility")] とマークして、このテストの対象となるテスト パスの名前を格納できます。 または、[TestProperty("TestKind", "Localization")] を使用して、テストの種類のインジケーターを格納できます。 この属性を使用して作成するプロパティ、および割り当てるプロパティ値は、どちらも Visual Studio の [プロパティ] ウィンドウの [各テストで特有] という見出しの下に表示されます。

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.OwnerAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.DeploymentItemAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.DescriptionAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.HostTypeAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.IgnoreAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.PriorityAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.TestPropertyAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.WorkItemAttribute

テスト構成クラス

  • Microsoft.TeamFoundation.TestManagement.Client.ObjectTypes

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.TestConfigurationSection

レポートの生成に使用する属性

このセクションの属性は、それらの属性が装飾するテスト メソッドを Team Foundation Server チーム プロジェクトのプロジェクト階層内のエンティティに関連付けます。

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.CssIterationAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.CssProjectStructureAttribute

プライベート アクセサーと共に使用するクラス

publicize を使用したプライベート アクセサーの作成」に説明されているように、プライベート メソッドの単体テストを生成できます。 生成するとプライベート アクセサー クラスが作成され、このクラスにより、PrivateObject クラスのオブジェクトがインスタンス化されます。 PrivateObject クラスは、プライベート アクセサー プロセスの一部としてリフレクションを使用するラッパー クラスです。 これは PrivateType クラスに似ていますが、PrivateType クラスは、プライベート インスタンス メソッドの呼び出しではなく、プライベート静的メソッドの呼び出しに使用されます。

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.PrivateObject

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.PrivateType

関連項目

Microsoft.VisualStudio.TestPlatform.UnitTestFramework