Visual Studio 2015 PreviewでのASP.NET 5(vNext)の単体テスト

ASP.NETはvNextになり、Visual Studioでの開発ではソリューションの構造が大きく変わりました。

vNextで公式に説明されている単体テストのプロジェクト作成とその使用方法について、すぐにはわからない部分がありました。そこで、最小構成(と思われる)プロジェクトを作成するサンプルを使って、vNextでの単体テストのキホンのキをお伝えします。

プロジェクトの生成後

プロジェクトを”ASP.NET Web Application”の”ASP.NET 5 Empty”で新規作成すると、下の画像の形になります。通常はsrcフォルダ以下にプロジェクトが作成され、ページのコンテンツはこのsrcの中で管理されます。

プロジェクトの構造

プロジェクトの構造

この備忘録では、このFooWebAppプロジェクトをテスト対象に、BarTestプロジェクトで単体テストをする場合の例を残します。

単体テスト用のフォルダ作成

公式ページでは、コンテンツのプロジェクトは”src”、テストのプロジェクトは”test”に置くという説明があります。

まずは新しいソリューションフォルダを作成し、”test”という名前にします。

testソリューションフォルダの追加

testソリューションフォルダの追加

次に、global.jsonのsourcesから”test”の記述を消しておきます。

修正前

修正前

修正後

修正後

ソリューションフォルダを作成したのに合わせ、紛らわしくならないよう実際のフォルダも作っておきました。

エクスプローラでもフォルダ作成

エクスプローラでもフォルダ作成

テストプロジェクト作成

それでは本題のテストプロジェクトを作成します。この備忘録を書いた時点では、テストプロジェクトと言っても特別なプロジェクトではなく、xUnitというテストツールを使うクラスライブラリでしかありません。

ということで、最初に”test”フォルダの下に”ASP.NET 5 Class Library”を作成して、FooWebAppへの参照を追加します。

単体テストプロジェクト作成

単体テストプロジェクト作成

参照を追加

参照を追加

最後にテストクラスのproject.jsonに下の画像のように記述すれば準備完了です。

project.json

project.json

テストの作成

それでは実際にテストケースを作ります。コード中ではXunit名前空間を使います。この使い方はVisual Studioに付属する単体テストとほとんど同じです。

xUnit.NETでテストを書く

xUnit.NETでテストを書く

書いた後は、テストエクスプローラでテストを実行することができます。もしビルドしてもこの欄に出てこない場合は、明示的にビルドをする必要があるようです。

テストエクスプローラ

テストエクスプローラ

テスト以外にも変化が

今回は単体テストについての備忘録でしたが、vNextではCSSやJavascriptなどの開発環境も変わっていて、BowerとGruntを使った開発になります。最初は戸惑いましたが、慣れてしまえば良いフロントの開発環境だと思います。

参考記事

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です