方法 : プライベート メソッドをテストする
更新 : 2007 年 11 月
単体テストを使用して、パブリック メソッドとプライベート メソッドの両方をテストできます。パブリック メソッドと同様、プライベート メソッドの単体テストは、テストを実施するコードからテストを作成するときに自動的に作成されます。
メソッドをテストする単体テストを手動で記述することもできますが、プライベート メソッドの単体テストを手動で記述するタスクは、パブリック メソッドの場合より難しくなります。これは、このタスクによる影響の複雑さをより深く理解している必要があるからです。そのため、プライベート メソッドの場合は、手動でコードを記述するよりもテストを生成する方が賢明です。
プライベート メソッドの単体テストを生成すると、Visual Studio ではプライベート アクセサが自動的に作成されます。プライベート アクセサは、テストがプライベート メソッドにそのメソッドのクラスの外部からアクセスできるようにするアセンブリです。詳細については、「プライベート アクセサの使用」を参照してください。
メモ : |
---|
プライベート メソッド以外に、プライベート アクセサを使用して、プライベート プロパティとプライベート フィールドをテストすることもできます。ただし、プライベート アクセサを使用して、イベント、デリゲート、匿名メソッド、および CompilerGeneratedAttribute 属性でマークされたメンバのプライベート バージョンをテストすることはできません。 |
InternalsVisibleTo とプライベート アクセサのどちらを使用するか
プライベート アクセサ アセンブリを使用して、プライベート メンバと内部メンバの両方にアクセスできます。テスト対象コードに内部メンバがあり、プライベート メンバがない場合は、テスト対象コードで InternalsVisibleTo 属性を使用し、プライベート アクセサ アセンブリを作成しないことをお勧めします。ただし、コードにテスト対象のプライベート メンバと内部メンバの両方が含まれている場合は、プライベート アクセサを使用します。これにより、プライベート メンバと内部メンバの両方にアクセスできるからです。詳細については、「プライベート アクセサの使用」を参照してください。
プライベート メソッドの単体テストを生成するには
プライベート メソッドを含むソース コード ファイルを開きます。
プライベート メソッドを右クリックし、[単体テストの作成] を選択します。
これによって、[単体テストの作成] ダイアログ ボックスが表示されます。表示されているツリー構造では、プライベート メソッドのチェック ボックスのみがオンになっています。
(省略可能) [単体テストの作成] ダイアログ ボックスで、[出力プロジェクト] を変更できます。また [設定] をクリックして、単体テストの生成方法を再構成できます。
[OK] をクリックします。
これにより、プライベート メソッドにアクセスするためのコードが生成され、テスト プロジェクトがビルドされ、プライベート アクセサ アセンブリが作成または更新されます。
この時点でテスト プロジェクトに単体テストが含まれていない場合は、単体テストを格納するソース コード ファイルが作成されます。プライベート アクセサを含むファイルと同様に、単体テストを含むファイルもソリューション エクスプローラのテスト プロジェクトに表示されます。
単体テストを含むファイルを開き、プライベート メソッドの場所までテストをスクロールします。// TODO: コメントでマーキングされたステートメントを探し、コメント内で説明された手順に従って完成させます。これにより、より正確なテスト結果を得ることができます。詳細については、「方法 : 単体テストを編集する」を参照してください。
これでプライベート メソッドの単体テストが実行できます。詳細については、「方法 : 選択したテストを実行する」を参照してください。