単体テストのツールとタスク

単体テストを実行することにより、開発者およびテスト担当者は、C#、Visual Basic、C++ のプロジェクトでクラスのメソッドに論理エラーがないかどうかをすばやく確認できます。

単体テスト ツールには次の要素が含まれます。

  • テスト エクスプローラー — 単体テストを実行し、テスト エクスプローラーでその結果を確認します。 サードパーティ製のフレームワークを含めて、テスト エクスプローラーのアダプターがあるすべての単体テスト フレームワークを使用できます。

  • マネージド コード用の Microsoft 単体テスト フレームワーク — マネージド コード用の Microsoft 単体テスト フレームワークは、Visual Studio と共にインストールされ、.NET コードをテストするためのフレームワークを提供します。

  • Microsoft ネイティブ単体テスト フレームワーク — C++ 用の Microsoft 単体テスト フレームワークは、C++ によるデスクトップ開発ワークロードの一部としてインストールされます。 これにより、ネイティブ コードをテストするためのフレームワークが提供されます。 Google Test、Boost.Test、CTest の各フレームワークも含まれており、サードパーティ製のアダプターを追加のテスト フレームワークで使用できます。 詳細については、C/C++ 用の単体テストの作成に関するページを参照してください。

  • コード カバレッジ ツール — テスト エクスプローラーで、単体テストが 1 つのコマンドから実行する製品コードの量を確認できます。

  • Microsoft Fakes 分離フレームワーク — Microsoft Fakes 分離フレームワークによって、テスト対象コード内の依存関係を作成する実稼働コードおよびシステム .NET コード向けの代替クラスおよび代替メソッドを作成できます。 関数の Fake デリゲートを実装して、依存関係オブジェクトの動作と出力を制御します。

.NET の場合、IntelliTest を使用してコードを確認し、テスト データと単体テストのスイートを生成することもできます。 コードにある各ステートメントについて、そのステートメントを実行するテスト入力が生成されます。 コード内の各条件付き分岐について、ケース分析が実行されます。

主なタスク

単体テストを理解および作成するには、次の記事を参照してください。

タスク 関連するトピック
チュートリアル: Visual Studio での単体テストについてコード例から学習します。 - 単体テストの概要
- テスト エクスプローラーによるテスト駆動開発
テスト エクスプローラーによる単体テスト: テスト エクスプローラーによって、さらに生産性が高く効率的な単体テストを作成できることを学習します。 - 単体テストの基本
- 単体テスト プロジェクトを作成する
- テスト エクスプローラーを使用して単体テストを実行する
- サードパーティ製の単体テスト フレームワークをインストールする
単体テストの .NET コード - .NET コード用の単体テストの作成および実行
C++ コードの単体テスト - C/C++ 用の単体テストの記述
- 方法: C++ アプリに単体テストを追加する
コード カバレッジを使用して、テストされたプロジェクトのコードの割合を調べる: Visual Studio のテスト ツールのコード カバレッジ機能について学習します。 - コード カバレッジを使用した、テストされるコード割合の確認
単体テストの分離 - Microsoft Fakes を使用したテストで .NET コードを分離する
品質ゲートの設定: コードをチェックインまたはマージする前にテストを実行するように強制する品質ゲートを作成する方法について説明します。 - チェックイン ポリシー (Azure Repos TFVC)
テスト オプションの設定: 例えばテスト結果が格納される場所など、テスト オプションを構成する方法について説明します。 .runsettings ファイルを使用して単体テストを構成する

API リファレンス ドキュメント

  • Microsoft.VisualStudio.TestTools.UnitTesting では、UnitTesting 名前空間について説明します。この名前空間は、単体テストをサポートする属性、例外、アサートなどのクラスを提供します。
  • Microsoft.VisualStudio.TestTools.UnitTesting.Web では、UnitTesting.Web 名前空間について説明します。この名前空間は、ASP.NET および Web サービスの単体テスト サポートを提供することで UnitTesting 名前空間を拡張します。