ASP.NET Core play with NUnit Test


介紹如何在ASP.NET Corek的環境使用Nunit Test Framework

先前介紹過MSTest,今天讓我們來嘗試用另外一套在.NET也十分流行的Nunit測試。

Nunit Test

與其他框架的比較:

First Unit Test on ASP.NET Core and Nunit

Create App Project

Create Test Project and Add App Project Reference

Write Function and Test it

我們簡單的做一個計算機並提供兩個計算功能,因為呼叫方便用了Lazy實作Singleton Pattern

using System;

namespace App
{
    public class Calculator
    {

        private static readonly Lazy<Calculator> lazy = new Lazy<Calculator>(() => new Calculator());

        public static Calculator Instance { get { return lazy.Value; } }

        private Calculator()
        {

        }
        
        public int Add(int value1,int value2){
            return value1+value2;
        }

        public int AddWithAutoPlus3(int value1,int value2){
            return value1+value2+3;
        }
    }
}

這邊簡單的寫一個測試如下:

using NUnit.Framework;
using App;

namespace App.Test
{
    [TestFixture]
    public class UnitTest1
    {
        [Test]
        public void Test_Calculator_Add()
        {
            var value1 = 1; 
            var value2 = 2;

            var expected = 3;
            int actual;

            actual = Calculator.Instance.Add(value1,value2);
            Assert.AreEqual(expected,actual);
            Assert.Inconclusive("Test Passed with Basic Values");
        }

        [Test]
        public void Test_Calculator_AddWithAutoPlus3()
        {
            var value1 = 1; 
            var value2 = 2;

            var expected = 6;
            int actual;

            actual = Calculator.Instance.AddWithAutoPlus3(value1,value2);
            Assert.AreEqual(expected,actual);
            Assert.Inconclusive("Test Passed with Basic Values");
        }
    }
}

當我們撰寫好後就可以執行指令觀看測試結果

dotnet test

至於如何寫出一個好的測試案例,我個人是很推崇91的系列文章,除了解析的清楚也把所有的考量與訴求都一併的做說明。有興趣的朋友可以參考一下[30天快速上手TDD][Day 3]動手寫 Unit Test與這30天快速上手TDD系列文章

NUnit 3 Test Runner for .NET Core

NUnit 3 Test Runner for .NET Core是一套

由於該套件還在alpha階段,如果在windows的環境使用Visaul Studio的NuGet Management的話記得要選擇show prereleases才能找到該套件。

References


作者: Blackie
版權聲明: 本站所有文章除特別聲明外,均採用 CC BY 4.0 許可協議。轉載請註明來源 Blackie !
 上一篇
下一篇 
GCP - Running Windows Server Failover Clustering Step by Step - Part 2 GCP - Running Windows Server Failover Clustering Step by Step - Part 2
手把手介紹如何在 Google Platform 上面建立 Windows Server 容錯移轉叢集並達到IIS Web Application HA 的效果。此篇為下集從叢集容錯管理設定到如何在 GCP 中達成 IIS 的請求移轉。
2018-06-01
  目錄