只有累積,沒有奇蹟

2019年1月19日 星期六

[UnitTest] NUnit 入門教學

前言
NUnit 是一個 open source 的 .Net 單元測試框架,根據官方統計下載次數達到 3000 萬次,支援 .Net Framework 與 .Net Core,近幾年開始在寫單元測試以來一直是使用 NUnit 寫單元測試為主,最近計畫把常用的或是上課學到好用的功能寫成文章分享出來,以下簡單介紹如何在.Net Framework 使用 NUnit 寫單元測試

安裝 NUnit
首先我們到 Visual Studio | Marketplace 下載 Test Generator NUnit extension,支援 NUnit 2.6 及 3 以上版本,也支援 NUnit Test 與 IntelliTests ( 僅 VS Enterprise 支援 ),支援在方法上按右鍵快速產生單元測試

建立單元測試
這邊準備好一份簡單的 sample Code,Example 類別底下有個 Reverse 方法內容為將輸入的字串做反轉的動作,我們要對字串反轉的方法撰寫單元測試,步驟說明如下
public class Example
{
    public string Reverse(string input)
    {
        char[] charArray = input.ToCharArray();
        Array.Reverse(charArray);
        return new string(charArray);
    }
}
Step 1 : 在 Reverse 方法上按右鍵,選擇 Create Unit Test
Step 2 : Test Framework 選擇 NUnit3,按下OK  (沒有NUnit選項請參考此網址)
在新增單元測試時可以選擇 / 輸入以下資訊
  • 是需要新建立一個測試專案或是在既有專案中
  • 測試專案、測試類別、方法的命名
  • Namespace 以及產生單元測試時 Assert 預設值
Step 3 : 會依據你上列選擇的項目產生下列要被測試類別內容
using NUnit.Framework;
using ConsoleApp2;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2.Tests
{
    [TestFixture()]
    public class ExampleTests
    {
        [Test()]
        public void ReverseTest()
        {
            Assert.Fail();
        }
    }
} 
這裡簡單說明
  • 自動 using NUnit.Framework 做為測試的框架 和 要被測試的類別 ConsoleApp2
  • 測試類別名稱為 被測試的類別+Tests
  • 預設 Assert fail
撰寫單元測試
產生了 UnitTest 的 Template 之後,接下來開始使用 3A 撰寫單元測試內容
  • Arrange : 測試物件的初始化、定義需要使用的參數資訊 
  • Act : 呼叫被測試的方法 
  • Assert : 驗證結果
Step 1 : 根據以上產生下列代碼
namespace ConsoleApp2.Tests
{
    [TestFixture()]
    public class ExampleTests
    {
        [Test()]
        public void ReverseTest()
        {
            //Arrange
            var ex = new Example();
            var input = "abc";
            
            //Act
            var actual = ex.Reverse(input);

            //Assert
            var expected = "cba";
            Assert.AreEqual(expected, actual);
        }
    }
}
Step 2 : 測試方法按下右鍵 > Run Tests (快捷鍵 : Ctrl + R T )
Step 3 : Visual Studio 會根據所選的測試進行驗證,執行結果可以在 Test Explorer 看到紅燈或綠燈 

快捷鍵
以上為 NUnit 簡單的介紹,另外在執行單元測試時可以透過快捷鍵更快的驗證單元測試的結果,以下分享我常用的快捷鍵
  • Run Test : Ctrl + R,T 
  • Debug Test : Ctrl + R, Ctrl T 
  • Run All Test : Ctrl + R, A 
  • Repert Last Run : Ctrl + R, L 
參考
NUnit
Test Generator NUnit extension



0 意見:

張貼留言

Copyright © m@rcus 學習筆記 | Powered by Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com