単体テストを使用したコードの検証

単体テストを実行することにより、開発者およびテスト担当者は、Visual C#、Visual Basic、および Visual C++ のプロジェクトでクラスのメソッドに論理エラーがないかどうかをすばやく確認できます。 単体テストは、1 回作成するだけでよく、バグが追加されていないことを確認するために、ソース コードが変更されるたびに実行できます。

主なタスク

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

タスク

関連するトピック

単体テストの構造について学習する: 単体テストの各部分と、Visual Studio テスト ツールを使用して単体テストを作成したときにソリューションに追加されるファイルについて説明します。

単体テストを作成して実行する: 単体テスト (データ ドリブン単体テストや、ソース コードのない .dll ファイルおよび .exe ファイルの単体テストを含む) を作成する方法について説明します。

特定の種類の単体テストを作成する際の考慮事項: C++、ジェネリック メソッド、および Web サービスの単体テストの相違点と追加情報に関するトピックへのリンクを示します。

単体テストにロード テストを使用したストレスおよびパフォーマンスの分析の実行: ロード テストを作成し、それに単体テストを追加すると、アプリケーションのパフォーマンスおよびストレスの問題を分離するのに役立ちます。

メモメモ
ロード テストの作成と使用には、Visual Studio 2010 Ultimate が必要です。

コード カバレッジを使用して、単体テストでテストされたプロジェクトのコードの割合を調べる: Visual Studio アプリケーション ライフサイクル管理 のテスト ツールのコード カバレッジ機能について学習します。

品質ゲートの設定と適用: 品質ゲートを作成し、コードがチェックインされる前にテストを実行することで、コードの品質を保証できます。

単体テストの種類の拡張: 単体テスト フレームワークにはない場合がある機能をテストに追加できます。 たとえば、テストを通常のユーザーとして実行するかどうかを指定するテスト プロパティを追加できます。 また、フレームワークを拡張して、行の属性をメソッドに追加し、テスト内でその行のデータを使用することもできます。

単体テスト フレームワークを拡張する方法のサンプル コードについては、Microsoft Web サイトを参照してください。

関連するタスク

テスト結果の確認

テスト結果とその扱い方 (テスト結果を表示、保存、発行する方法など) について説明します。

Microsoft Visual Studio を使用した自動テストの実行

Microsoft テスト マネージャー を使用するのではなく、Visual Studio を使用して自動テストを実行する方法へのリンクを示します。

単体テスト用のパワー ツール

  • Pex   Pex は、.NET Framework アプリケーションの単体テストを補完する Visual Studio アドインです。 Pex は、Visual Studio コード エディターでメソッドの入力値と出力値を見つけます。 これらの値は、コード カバレッジ率が高くなる小規模なテスト スイートとして保存できます。

  • Moles   Moles を使用すると、任意の .NET メソッドをデリゲートに置き換えることができます。 Moles は、迂回およびスタブを使用して分離を実現することによって、単体テストをサポートします。 Moles はメソッド レベルで動作するので、モックがターゲット API でサポートされない場合にその代わりとなる方法を提供します。 SharePoint は、分離が役に立つがモックを直接サポートしない API の好例です。 Moles は、テスト対象のコードで任意の動作を簡単に挿入できるので、フォールト インジェクションにも使用できます。

    Pex は MSDN サブスクライバーしか利用できず、Moles を含んでいます。 Moles のみのダウンロードは一般に公開されています。 これらのツールの詳細およびダウンロードについては、「Pex and Moles (Pex と Moles)」を参照してください。

参照

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

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

参照

概念

一般的な開発タスクの実行

アプリケーションのテスト