NUnit 是一個 open source 的 .Net 單元測試框架,根據官方統計下載次數達到 3000 萬次,支援 .Net Framework 與 .Net Core,近幾年開始在寫單元測試以來一直是使用 NUnit 寫單元測試為主,最近計畫把常用的或是上課學到好用的功能寫成文章分享出來,以下簡單介紹如何在.Net Framework 使用 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 預設值
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 : 驗證結果
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 意見:
張貼留言