<目次>
(1) ASP.NETの既存プロジェクトに単体テストプロジェクトを追加する手順
(1-1) 新規プロジェクトを作成
(1-2) 参照の追加
(1-3) 単体テスト用のコードの記述
(1-4) 単体テストの実行
(1) ASP.NETの既存プロジェクトに単体テストプロジェクトを追加する手順
今回はASP.NET MVCの既存のプロジェクトに対して「単体テスト用のプロジェクト」を後から追加する手順をご紹介いたします。
⇒※新規にASP.NET MVCプロジェクト作成する場合は手順が異なり、別途「新規PJに単体テストPJを追加する手順」でご紹介しています。
(1-1) 新規プロジェクトを作成
①ソリューションを右クリック⇒追加⇒新しいプロジェクトを選択
(図111)①
②テンプレートの選択
検索窓から「単体テスト」等で検索してC#用の「単体テスト プロジェクト」を選択します。
(図111)②
③プロジェクト名の入力
プロジェクト名を入力しますが、デフォルトでは「[プロジェクト名].Tests」になるため、例ではそれに倣って「MVCTest.Tests」としています。
(図111)③
(1-2) 参照の追加
参照の追加とは、ライブラリ(dll等)や実行ファイル(exe)を自身のプロジェクトにて利用できるように取り入れる事です。
例えば、Windows用のプロジェクトを作る際には、事前に用意されている「System.Windows.Forms」といったライブラリを使用して開発をしますが、これらのライブラリの実態はMicrosoft社により事前にコンパイルされたdllであり、Visual Studioとセットで配布されているものです。参照の追加はこれらの追加を手動で行う操作の事です。
①先程作成したテスト用プロジェクトを「右クリック」⇒「追加」⇒「参照」と選択します。
(図121)①
②「参照マネージャー」の左ペインより「プロジェクト」を選択し、テストを実行する対象のプロジェクトにチェックを入れます。
(図121)②
(図121)③
(1-3) 単体テスト用のコードの記述
次に作成したプロジェクト内の「.cs」ファイルに単体テスト用のコードを追記していきます。下記は、コントローラのインスタンスを生成し、そのIndexメソッド(画面描画メソッド)を呼んで、結果が空かどうか?を✔するテストです。
(例)
public void TestMethod1() { //# ご自身のControllerのインスタンスを生成 HomeController controller = new HomeController(); //# Indexメソッドの結果をViewResultクラスに格納 ViewResult result = controller.Index() as ViewResult; //# 指定したオブジェクトがnullでないかチェック Assert.IsNotNull(result); }
(図131)⓪
(補足)
ViewResultクラスは、アクションの結果をビュースクリプト(.cshtml)で描画するためのクラスで、Controllerで定義するアクションメソッドの戻り値である「ActionResult」クラスの派生クラスとなっています。Index()メソッドの結果はActionResult型ですが、Viewを返却しているので「as ViewResult」で「ViewResult」型にキャストしています。
また、ViewResultクラスを使用するために「Microsoft.AspNet.Mvc」のインストールが必要なため、もし無い場合はインストールします。
赤い波線にカーソルを当てると「パッケージ[XXXX]をインストールする」といったオプションが表示されるので、必要に応じて利用します。
(図131)①
(1-4) 単体テストの実行
上段メニューより「テスト」⇒「すべてのテストを実行」と選択すると、単体テストが実行されます。
(図141)
②結果確認
「テストエクスプローラー」という画面が起動し、テスト結果が表示されます。
(図142)