ASP.NET Coreで単体テストを作る
本章では、ASP.NET Coreで単体テスト(Unit Test)を作る手順について共有します。
はじめに
ASP.NET Coreでは、.NET Frameworkを標準で利用できないため、MSTestを利用できません。そこで、.NET Frameworkを利用しないテストフレームワークを利用する必要があります。現在利用できるテストフレームワークとして、xUnitがありますのでこちらを利用します。
またVisual Studioのプロジェクト作成テンプレートに、テストプロジェクトがありません。そこでこちらも、自前で用意する必要があります。
今回は、xUnitを用いたテストが実施できるまでの手順を確認します。
手順
テストを実施するための準備は、以下の流れになります。
- テストフォルダの作成
- テストプロジェクトの作成
- テストプログラムの作成
- テスト実行
テストフォルダの作成
まず、以下の通り、テストフォルダを用意します。
ROOT ├hogehoge.sln ├global.json ├src │└hogehoge(←テスト対象となるプロジェクト) └test └hogehoge.Tests(←テストプロジェクト)
そして、testフォルダがソリューション内で認識されるよう、global.jsonを以下の通り、「test」プロジェクトを追加記述します。
{ "projects": [ "src", "test" ], (←testを追加する) "sdk": { "version": "1.0.0-hogehoge" (←こちらは編集しない) } }
テストプロジェクトの作成
そしてhogehoge.Testプロジェクトで、以下コマンドを実行します。
$ dotnet new --type xunittest
$ dotnet restore
コマンドを実行すると、テストプロジェクトが生成され、以下の通り、テストに必要なライブラリが生成されます。
テストプログラムの作成
Visual Studioに戻って、ソリューションを確認すると、プロジェクトが読み込まれていません。そこで、testフォルダを作成し、既存プロジェクトとしてテストプロジェクトを選択すると、テストプロジェクトがソリューションエクスプローラーに読み込まれます。
最後に、以下のようなテストプログラムを作ります。
using System; using Xunit; namespace Tests { public class Tests { [Fact] public void Test1() { Assert.True(true); } } }
テスト実行
テストの実行は、メニューバーの「テスト」→「実行」→「すべてのテスト」で実行されます。