C#使用NUnit進(jìn)行單元測(cè)試詳解
寫(xiě)在前面
NUnit是一個(gè)開(kāi)源的.Net單元測(cè)試框架,經(jīng)常被用來(lái)在.Net體系下做白盒測(cè)試。
本文記錄一個(gè)簡(jiǎn)單的使用NUnit進(jìn)行單元測(cè)試的完整流程。
代碼實(shí)現(xiàn)
新建一個(gè)目標(biāo)類(lèi)庫(kù)NUnitTester,添加待測(cè)試的類(lèi)文件,內(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)類(lèi)庫(kù)的父目錄下建立一個(gè)空的文件夾,命名為NUnitTester.Tests,進(jìn)入該目錄用命令行窗口執(zhí)行:
dotnet new nunit
完成后再執(zhí)行:
dotnet add reference ../NUnitTester/NUnitTester.csproj
添加目標(biāo)類(lèi)庫(kù)的引用
修改單元測(cè)試類(lèi),編輯好測(cè)試用例方法
namespace NUnitTester.Tests;
[TestFixture]
public class Tests
{
private DataChecker _dataChecker;
[SetUp]
public void Setup()
{
_dataChecker = new DataChecker();
}
[Test]
public void Test1()
{
// 跳過(guò)
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è)試的類(lèi)。 [Test] 屬性指示方法是測(cè)試方法。
其中[TestCase] 屬性用于創(chuàng)建一套可執(zhí)行相同代碼但具有不同輸入?yún)?shù)的測(cè)試。 可以使用 [TestCase] 屬性來(lái)指定這些輸入的值。
執(zhí)行結(jié)果
編輯好測(cè)試用例后,在測(cè)試項(xiàng)目目錄下,使用命令窗口執(zhí)行:
dotnet test

與預(yù)期一致,單元測(cè)試通過(guò)
到此這篇關(guān)于C#使用NUnit進(jìn)行單元測(cè)試詳解的文章就介紹到這了,更多相關(guān)C# NUnit單元測(cè)試內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C# Color.FromArgb()及系統(tǒng)顏色對(duì)照表一覽
這篇文章主要介紹了C# Color.FromArgb()及系統(tǒng)顏色對(duì)照表一覽,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
C#(asp.net)多線(xiàn)程用法示例(可用于同時(shí)處理多個(gè)任務(wù))
這篇文章主要介紹了C#(asp.net)多線(xiàn)程Thread用法,可用于同時(shí)處理多個(gè)任務(wù),以簡(jiǎn)單數(shù)學(xué)運(yùn)算為例講述了Thread類(lèi)實(shí)現(xiàn)多線(xiàn)程的相關(guān)技巧,需要的朋友可以參考下2016-06-06
C#類(lèi)繼承中構(gòu)造函數(shù)的執(zhí)行序列示例詳解
這篇文章主要給大家介紹了關(guān)于C#類(lèi)繼承中構(gòu)造函數(shù)的執(zhí)行序列的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09
C#多線(xiàn)程系列之手動(dòng)線(xiàn)程通知
本文詳細(xì)講解了C#多線(xiàn)程中的手動(dòng)線(xiàn)程通知,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02

