SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Visual Studio 単体テスト機能大全

Visual Studioで作る単体テスト、外部環境の利用方法

Visual Studio 単体テスト機能大全(5)

  • X ポスト
  • このエントリーをはてなブックマークに追加

 次に、ソリューションエクスプローラーでWebアプリケーションプロジェクト(付属サンプルではWebApplication1)を選択し、コンテキストメニューから[プロパティ]を表示します。左側の一覧から[Web]を選択し、右側では図3のように[サーバー]グループ内の[ポートを指定する]ラジオボタンにチェックを入れます。ポート番号は、リスト7などでUrlToTest属性に指定されていたポート番号と同様なので、そのままにします。

図3:Webアプリケーションプロジェクトの設定
図3:Webアプリケーションプロジェクトの設定

 最後にVisual Studioの設定を変更します。Visual Studioの[ツール]から[オプション]を選択します。左側の項目から[テストツール]-[テストの実行]を選択します。右側では[Webアプリケーションルートディレクトリ]のテキストボックスに「D:\CodeZine-Test-05」を設定して[OK]ボタンをクリックします。なお、ここで設定したパスはリスト5のAspNetDevelopmentServerHost属性に設定されたパスのうち、リスト7で%PathToWebRoot%という文字列で置き換えた部分となります。

 以上で設定は完了です。再度、WriteFileTest単体テストを実行してテストが成功することを確認してください。

図4:Visual Studioの設定を変更
図4:Visual Studioの設定を変更

補足や注意事項

 ここまでで、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アプリケーションの単体テストについて取り上げる予定です。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
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本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト りばてぃ(リバティ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6209 2011/10/18 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング