ダウンロード サンプルファイル(作業後) (406.4 KB)
ダウンロード サンプルファイル(作業前) (160.7 KB)
次に、ソリューションエクスプローラーでWebアプリケーションプロジェクト(付属サンプルではWebApplication1)を選択し、コンテキストメニューから[プロパティ]を表示します。左側の一覧から[Web]を選択し、右側では図3のように[サーバー]グループ内の[ポートを指定する]ラジオボタンにチェックを入れます。ポート番号は、リスト7などでUrlToTest属性に指定されていたポート番号と同様なので、そのままにします。
最後にVisual Studioの設定を変更します。Visual Studioの[ツール]から[オプション]を選択します。左側の項目から[テストツール]-[テストの実行]を選択します。右側では[Webアプリケーションルートディレクトリ]のテキストボックスに「D:\CodeZine-Test-05」を設定して[OK]ボタンをクリックします。なお、ここで設定したパスはリスト5のAspNetDevelopmentServerHost属性に設定されたパスのうち、リスト7で%PathToWebRoot%という文字列で置き換えた部分となります。
以上で設定は完了です。再度、WriteFileTest単体テストを実行してテストが成功することを確認してください。
補足や注意事項
ここまでで、ASP.NET環境を利用した単体テストの作成・実行を見てきました。何点か補足と注意事項を確認しておきましょう。
まず、特に気にすることなくASP.NET環境が必要な単体テストを作成して実行できました。この最大のポイントとなっているのが、リスト5などで付与されていたHostType属性、AspNetDevelopmentServerHost属性、UrlToTest属性です。
HostType属性はテストを実行するための環境(ホスト)を定義するためのものです。HostTypeにはライブラリを実行する場合の既定のホストと、ASP.NET環境を利用するためのASP.NETが用意されています。定義済みメソッドから単体テストを作成する場合は、Visual Studioが自動的に判断して、ASP.NETが必要な場合にはホストを変更するためにHostType属性が付与されます。
AspNetDevelopmentServerHost属性はテスト実行時にASP.NET開発サーバーを立ち上げる際、読み込み元となるWebアプリケーションのフォルダパスを設定しています。つまり、ASP.NET Webアプリケーションをデバッグ実行する場合と同様に、単体テスト時にもWebアプリケーションを起動できるようになるというわけです。
UrlToTest属性は、テスト実行時に接続するWebアプリケーションパスです。リクエストURLやその際に実行されるページインスタンスなどが特定の要件を満たす必要がある場合にはそれに合わせて正確に設定します。そうでない場合には、テスト作成時に設定されたものをそのまま利用して問題ありません。
これら3つを利用することで、今回の場合はWriteFileTestメソッドが動作する際に、WebApplication1というWebアプリケーション環境が起動され、その環境を利用して単体テストが実行されるという動きを行うことで、単体テストを実行して成功させることができました。
まとめ
今回は、外部の環境に依存しながら動作する単体テストとして、データベース操作を伴うものとASP.NET環境を必要とするものを取り上げました。第3回で紹介した方法と組み合わせると、さまざまな応用方法を考えることができます。ぜひいろいろと試してみてください。次回は今回紹介しきれなかったWindowsアプリケーションの単体テストについて取り上げる予定です。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- Visual Studio 単体テスト機能大全連載記事一覧
-
- Visual Studioで作る単体テスト、UI操作の自動実行
- Visual Studioで作る単体テスト、外部環境の利用方法
- Visual Studioで作るデータドリブンテスト
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト りばてぃ(リバティ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア


