ASP.NET Web サービスの単体テスト

ASP.NET Web サービスの単体テストは、クラスの単体テストとは違う点がいくつかあります。 最も重要な点は、プロジェクトに .aspx ファイルが含まれている必要があることです。 ここでは、その方法について説明し、ASP.NET Web サービスの単体テストを作成する際にテスト プロジェクトで起こることについても説明します。

Web サイトに対してパフォーマンス テストを実行する方法の詳細については、「Web パフォーマンス テストの作成と編集」を参照してください。 クラスの単体テストの詳細については、「方法: 単体テストを作成して実行する」を参照してください。

前提条件

次の IIS コンポーネントがインストールされていることを確認します。

IIS 6 メタベースおよび IIS 6 構成との互換性

プロジェクトに .aspx ファイルがあることを確認する

単体テストを実行するには、プロジェクトに ASP.NET Web サービスを含む .aspx ファイルが必要です。 .aspx ファイルがない場合、単体テストを作成しているようには見えますが、テストを実行しようとすると、Web 要求が完了したことを通知するエラーが返されます。 ただし、テストは実際には実行されていません。

.aspx ファイルを追加するには

  1. ソリューション エクスプローラーで、ASP.NET Web サービスを含むプロジェクトを右クリックし、[追加] をクリックして [新しいアイテム] をクリックします。

  2. [新しい項目の追加] ダイアログ ボックスの [インストールされたテンプレート] で、[Web] をクリックします。

  3. Web テンプレートの一覧で、[Web フォーム] をクリックし、[追加] をクリックします。

3 つの新しいファイル (WebForm1.aspx、WebForm1.aspx.cs、および WebForm1.aspx.designer.cs) がプロジェクトに追加されます。 これらのファイルを変更または使用する必要はありません。

ASP.NET Web サービスに対する単体テストを生成した場合の動作

次の図は、単純な ASP.NET Web サービス プロジェクト用に生成されたテスト メソッドを示しています。 単体テストを作成したときに発生する、より一般的な変更点については、「単体テストの構造」を参照してください。

ASP.NET 単体テスト メソッド

ASP.NET 単体テスト メソッド

  1. すべての単体テストは [TestMethod ()] 属性と共に生成されます。

  2. [Host Type ()] 属性は、単体テストが実行するホスト アダプターを指定します。 この属性を変更する必要はありません。

  3. [AspNetDevelopmentServerHost()] 属性は、テスト用のホスト サーバーが ASP.NET 開発サーバーのときに使用する設定を指定します。 この属性は、ASP.NET Web サービスが IIS プロセスではなくファイル システムで実行されている場合にのみ含まれます。 この属性を変更する必要はありません。

  4. [UrlToTest()] 属性は、単体テストの ASP.NET Web サービスの URL を指定します。

  5. 残りはテスト メソッドの本体です。 変数を初期化し、テスト メソッドのアサートを編集できます。

注意

ここで説明される属性の詳細については、次を参照してください。

Microsoft.VisualStudio.TestTools.UnitTesting.

Windows Vista を実行している場合は、管理者として Visual Studio を実行する

Windows Vista を実行している場合、ASP.NET 単体テストを実行するためには、Visual Studio を管理者として実行する必要があります。 Visual Studio を通常のユーザーとして実行する場合は、Web サイトを作成したり ASP.NET テストを作成して実行したりすることはできますが、実行したテストは失敗します。 Visual Studio を管理者として実行するには、[スタート] メニューの [Microsoft Visual Studio 2010] を右クリックし、[管理者として実行] をクリックします。

IIS を非既定ユーザーとして実行する場合は、必要なすべてのアクセス許可を有効にする

ASP.NET Web サービスを作成する場合、ファイル システムHTTP、または FTP の場所を選択します。 ファイル システムを選択すると、ASP.NET 開発サーバー プロセスが使用されます。 HTTP または FTP を選択すると、IIS プロセスが使用されます。

ASP.NET Web サービスが IIS プロセスで実行されている場合は、セキュリティのために、単体テストを非既定ユーザーとして実行することを選択できます。 非既定ユーザーは、別のプロセス ID です。

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

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

参照

参照

Microsoft.VisualStudio.TestTools.UnitTesting

概念

方法: 単体テストを作成して実行する

単体テストの構造