kikki's tech note

技術ブログです。UnityやSpine、MS製品など技術色々について解説しています。

ASP.NET Coreで単体テストを作る

本章では、ASP.NET Coreで単体テスト(Unit Test)を作る手順について共有します。

はじめに

ASP.NET Coreでは、.NET Frameworkを標準で利用できないため、MSTestを利用できません。そこで、.NET Frameworkを利用しないテストフレームワークを利用する必要があります。現在利用できるテストフレームワークとして、xUnitがありますのでこちらを利用します。
またVisual Studioのプロジェクト作成テンプレートに、テストプロジェクトがありません。そこでこちらも、自前で用意する必要があります。
f:id:kikkisnrdec:20161104094022p:plain
今回は、xUnitを用いたテストが実施できるまでの手順を確認します。

手順

テストを実施するための準備は、以下の流れになります。

  1. テストフォルダの作成
  2. テストプロジェクトの作成
  3. テストプログラムの作成
  4. テスト実行

テストフォルダの作成

まず、以下の通り、テストフォルダを用意します。

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

コマンドを実行すると、テストプロジェクトが生成され、以下の通り、テストに必要なライブラリが生成されます。
f:id:kikkisnrdec:20161104093156p:plain
f:id:kikkisnrdec:20161104093533p:plain

テストプログラムの作成

Visual Studioに戻って、ソリューションを確認すると、プロジェクトが読み込まれていません。そこで、testフォルダを作成し、既存プロジェクトとしてテストプロジェクトを選択すると、テストプロジェクトがソリューションエクスプローラーに読み込まれます。
最後に、以下のようなテストプログラムを作ります。

using System;
using Xunit;

namespace Tests
{
    public class Tests
    {
        [Fact]
        public void Test1() 
        {
            Assert.True(true);
        }
    }
}

テスト実行

テストの実行は、メニューバーの「テスト」→「実行」→「すべてのテスト」で実行されます。
f:id:kikkisnrdec:20161104095257p:plain

筆休め

テストは、サービスの品質を高く保つために必要となります。ASP.NET Coreでも適切な場所で単体テストを実施しましょう。

以上、「ASP.NET Coreで単体テストを作る」でした。

※無断転載禁止 Copyright (C) 2015 kikkisnrdec All Rights Reserved.