ASP.NET 単体テストの概要

更新 : 2007 年 11 月

ASP.NET 単体テストを使用すると、ASP.NET サイトまたはプロジェクトの一部であるメソッドをテストできます。たとえば、ASP.NET プロジェクトのビジネス ロジックを構成するメソッドをテストできます。

ms182520.alert_note(ja-jp,VS.90).gifメモ :

Windows Vista を実行している場合、ASP.NET 単体テストを実行するためには、Visual Studio を管理者として実行する必要があります。Visual Studio を通常のユーザーとして実行する場合は、Web サイトを作成したり ASP.NET テストを作成して実行したりすることはできますが、実行したテストは失敗します。Visual Studio を管理者として実行するには、Microsoft Visual Studio 2005 を右クリックし、[管理者として実行] をクリックします。続行するかどうか、またはプロセスの実行を許可するかどうかを確認するメッセージが表示されたら、[続行] または [許可] をクリックします。管理者のアクセス許可を持つユーザーのログオン資格情報の入力を求められた場合は、適切な資格情報を入力しなければ ASP.NET 単体テストを実行することはできません。Windows Vista のセキュリティの詳細については、「ユーザー アカウント制御の概要」を参照してください。

ASP.NET 単体テストと他のテストの相違点は、テストを実行するプロセスにあります。ASP.NET テストは実行コードと同じ環境で実行します。このため、IIS や ASP.NET 開発サーバーを選択できます。Web サーバー プロセスでテストを実行すると、たとえば Page オブジェクトなど、そのプロセスに関連付けられているすべての環境にアクセスできます。

ASP.NET 単体テストは、生成による方法と、既存の単体テストを ASP.NET 単体テストとして実行するように設定する方法の 2 つの方法で作成できます。これらの方法は、「方法 : ASP.NET 単体テストを作成する」で説明されています。

実行する単体テストで使用する実行構成で設定を指定することもできます。設定は、実行構成がアクティブである場合のみ使用されます。詳細については、「方法 : ASP.NET 単体テストを作成する」を参照してください。

ASP.NET 単体テストの実行中における別のプロセス ID の使用

ASP.NET コードをテストしているとき、テスト コードは IIS プロセスまたは ASP.NET 開発サーバー プロセスで実行されます。ASP.NET 単体テストを IIS プロセスで実行している場合、セキュリティ向上を目的として、ASP.NET プロセスを非既定ユーザーとして、つまり別のプロセス ID で実行できます。

たとえば、ASP.NET Web サイトがコンピュータ上に存在するフォルダ、ファイル、データベースなどのリソースにアクセスする必要がある場合、該当するリソースに対応するアクセス許可だけを持つように実行できます。

ms182520.alert_note(ja-jp,VS.90).gifメモ :

既定の ID は IIS のバージョンによって異なります。たとえば、Windows Server 2003 の場合、ASP.NET プロセス w3wp.exe の既定の ID は "NETWORK SERVICE" です。

この場合、単体テストの実行が失敗することがあります。たとえば、非既定ユーザーとして実行されている ASP.NET プロセスのアクセス許可に制限があっても、一時ファイルを %WINDIR%\Temp フォルダに生成できる可能性があります。これは、%WINDIR%\Temp の既定のアクセス許可によって、ファイルの作成に必要なアクセス許可がプロセスに与えられていない場合には失敗します。その場合、単体テストの実行を成功させるには、%WINDIR%\Temp フォルダに関してより高いアクセス許可をプロセスに与える必要があります。

単体テストの実行は、サービス アカウントに配置ルート フォルダへのアクセス許可がない場合にも失敗します。この場合、Visual Studio によってダイアログ ボックスが表示され、エラーが通知されますが、[OK] をクリックして先へ進むことができます。

参照

処理手順

方法 : ASP.NET 単体テストを作成する

方法 : テスト実行構成を指定する

方法 : ASP.NET ソリューションでのテスト中にデバッグする

概念

テスト配置の概要

ASP.NET 単体テストとプライベート アクセサ

その他の技術情報

ユニット テストの作成