方法 : 単体テストを編集する

更新 : 2007 年 11 月

単体テストを編集する理由は 2 つあります。手動で単体テストを編集している場合、または新しく生成された単体テストを編集している場合です。新しく生成された単体テストを実行することもできますが、それらは既定のコンテンツを使用して生成されているため、テストで意味のある結果を生成できるようにするには、適切な値に初期化する必要があります。生成された単体テストでは、通常、変数代入および 1 つ以上の Assert ステートメントをカスタマイズする必要があります。

単体テストでの Assert ステートメントの使用

既定では、生成された各単体テストから Inconclusive メソッドが呼び出されますが、基本的にテストはまだ実装されていないため、この呼び出しは失敗します。したがって、次の手順として、テストするメソッドの動作が正しいかどうかをチェックする有用なコードを追加する必要があります。これを行う一般的な方法は、値を生成し、Assert.AreEqual ステートメントを使用して、生成した値を予測値と比較することです。例については、「ユニット テストの構造」の「単体テストの例」を参照してください。新しく生成された単体テストには、変更が必要な部分を示す "To-do" コメントが含まれています。

Assert ステートメントがない単体テストは、タイムアウトしたり予期しない例外がスローされたりしない限り、自動的に成功します。詳細については、「主なテスト結果」および「Assert クラスの使用」を参照してください。

単体テストの編集と作成

このトピックでは、2 つの手順について説明します。

  • 最初の手順では、既存の単体テストを編集する方法について説明します。通常は、自動的に生成された単体テストを準備するためにこの手順を使用します。方法 : 単体テストを生成する を参照してください。

  • 2 番目の手順では、手動で単体テストを作成し、編集する方法について説明します。

既存の単体テストを編集するには

  1. ソリューション エクスプローラのテスト プロジェクトで、単体テストを含むファイルを探し、開きます。次に、編集する単体テスト メソッドを探します。

    または

    [テスト ビュー] で、単体テストをダブルクリックします。これにより、単体テストを含むファイルが開き、単体テスト メソッドまでスクロールします。

  2. メソッドの変数代入を探します。

    新しく生成されたテストでは、変数代入が "To-Do" ステートメントによってマークされており、代入をカスタマイズするよう示されています。たとえば、編集する必要のある一般的な代入の例を次に示します。

    string target.owner = null; // TODO: Initialize to an appropriate value 
    
  3. 適切な値を各変数に代入します。

    適切な値を知るためには、メソッドが呼び出される前にこれらの変数が初期化されるある値、メソッドが呼び出されるときに実行される変更、および予測結果などを考慮します。このプロセスの例については、「チュートリアル : 単体テストの作成と実行」の「単体テストを実行およびカスタマイズする」を参照してください。

  4. メソッドの Assert ステートメントを探し、編集します。必要に応じて、Assert ステートメントをさらに追加します。

単体テスト フレームワークでは、有用な Assert ステートメントを柔軟に記述できるようにする、その他のさまざまな Assert クラスおよび Assert メソッドを用意しています。詳細については、「単体テスト フレームワーク」を参照してください。

入力により単体テストを作成するには

  1. ソリューション エクスプローラで、テスト プロジェクトを右クリックし、[追加] をポイントして、[新しいテスト] をクリックします。

    または

    [テスト ビュー] ウィンドウで任意の場所を右クリックして、[新しいテスト] をクリックします。

    これによって、[新しいテストの追加] ダイアログ ボックスが表示されます。

  2. [テンプレート] の [単体テスト] をクリックし、[OK] をクリックします。

    テスト プロジェクトの言語で、UnitTest1.cs などの名前が付いた新しいソース コード ファイルがテスト プロジェクトに追加されます。このファイルには、単体テストに必要ないくつかの要素が含まれています。

    • Microsoft.VisualStudio.TestTools.UnitTesting 名前空間および System 名前空間を参照します。

    • テスト クラスが含まれる独自の名前空間を定義します。テスト クラスには、[TestClass] 属性があります。

    • 初期化メソッドおよびクリーンアップ メソッドが含まれます。これらのメソッドには、それぞれ [TestInitialize()] 属性および [TestCleanup()] 属性があります。

    • [TestMethod] 属性を持つ空のテスト メソッドが含まれています。テスト論理は、ここで追加します。このメソッドには、TestMethod1() などの既定の名前が付いています。

    このファイルは、ソース コードを編集するためのウィンドウでも開きます。新しい (空の) テスト メソッドが、[テスト ビュー] ウィンドウおよびテスト リスト エディタに表示されます。

  3. テスト コードをテスト メソッドに追加します。

単体テスト フレームワークでは、有用な Assert ステートメントを柔軟に記述できるようにする、その他のさまざまな Assert クラスおよび Assert メソッドを用意しています。詳細については、「単体テストの概要」および「単体テスト フレームワーク」を参照してください。

参照

概念

単体テスト フレームワーク

その他の技術情報

方法 : 単体テストを生成する

ユニット テストの作成

単体テストの概要

テストの管理

テストの実行

テスト結果の分析