C#使用NUnit進(jìn)行單元測(cè)試詳解
寫在前面
NUnit是一個(gè)開源的.Net單元測(cè)試框架,經(jīng)常被用來在.Net體系下做白盒測(cè)試。
本文記錄一個(gè)簡(jiǎn)單的使用NUnit進(jìn)行單元測(cè)試的完整流程。
代碼實(shí)現(xiàn)
新建一個(gè)目標(biāo)類庫NUnitTester,添加待測(cè)試的類文件,內(nèi)容如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace NUnitTester { public class DataChecker { public bool IsPrime(int candidate) { if (candidate == 1) { return true; } return false; } } }
在目標(biāo)類庫的父目錄下建立一個(gè)空的文件夾,命名為NUnitTester.Tests,進(jìn)入該目錄用命令行窗口執(zhí)行:
dotnet new nunit
完成后再執(zhí)行:
dotnet add reference ../NUnitTester/NUnitTester.csproj
添加目標(biāo)類庫的引用
修改單元測(cè)試類,編輯好測(cè)試用例方法
namespace NUnitTester.Tests; [TestFixture] public class Tests { private DataChecker _dataChecker; [SetUp] public void Setup() { _dataChecker = new DataChecker(); } [Test] public void Test1() { // 跳過 Assert.Pass(); } [TestCase(-1)] [TestCase(1)] public void IsValidValue(int value) { var isValid = _dataChecker.IsPrime(value); Assert.IsTrue(isValid, $"{value} {(isValid ? "":"不")}是合法的數(shù)值"); Assert.IsFalse(isValid, $"{value} {(isValid ? "" : "不")}是合法的數(shù)值"); //Assert.That(isValid, Is.False, $"{value} 不是合法數(shù)值"); } }
[TestFixture] 屬性表示包含單元測(cè)試的類。 [Test] 屬性指示方法是測(cè)試方法。
其中[TestCase] 屬性用于創(chuàng)建一套可執(zhí)行相同代碼但具有不同輸入?yún)?shù)的測(cè)試。 可以使用 [TestCase] 屬性來指定這些輸入的值。
執(zhí)行結(jié)果
編輯好測(cè)試用例后,在測(cè)試項(xiàng)目目錄下,使用命令窗口執(zhí)行:
dotnet test
與預(yù)期一致,單元測(cè)試通過
到此這篇關(guān)于C#使用NUnit進(jìn)行單元測(cè)試詳解的文章就介紹到這了,更多相關(guān)C# NUnit單元測(cè)試內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c# 通過內(nèi)存映射實(shí)現(xiàn)文件共享內(nèi)存的示例代碼
這篇文章主要介紹了c# 通過內(nèi)存映射實(shí)現(xiàn)文件共享內(nèi)存的示例代碼,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-04-0490分鐘實(shí)現(xiàn)一門編程語言(極簡(jiǎn)解釋器教程)
本文介紹了如何使用 C# 實(shí)現(xiàn)一個(gè)簡(jiǎn)化 Scheme——iScheme 及其解釋器,需要的朋友可以參考下2016-12-12Unity使用EzySlice實(shí)現(xiàn)模型多邊形順序切割
這篇文章主要為大家詳細(xì)介紹了Unity使用EzySlice實(shí)現(xiàn)模型多邊形順序切割,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07UnityShader3實(shí)現(xiàn)2D描邊效果
這篇文章主要為大家詳細(xì)介紹了UnityShader3實(shí)現(xiàn)2D描邊效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02C#調(diào)用非托管動(dòng)態(tài)庫中的函數(shù)方法
這篇文章主要介紹了C#調(diào)用非托管動(dòng)態(tài)庫中的函數(shù)方法,本文講解創(chuàng)建一個(gè)非托管動(dòng)態(tài)庫,然后在C#中調(diào)用它,需要的朋友可以參考下2015-02-02