.NET Core 单元测试
應(yīng)用程序測(cè)試的類(lèi)型很多,包括集成測(cè)試,Web 測(cè)試,負(fù)載測(cè)試等。在最底層的是單元測(cè)試,此測(cè)試可以測(cè)試單個(gè)軟件組件或方法。單元測(cè)試一般只測(cè)試開(kāi)發(fā)人員的代碼,不應(yīng)該測(cè)試基礎(chǔ)結(jié)構(gòu)普、問(wèn)題,如數(shù)據(jù)庫(kù),文件系統(tǒng)或網(wǎng)絡(luò)資源等。單元測(cè)試可以使用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD)編寫(xiě),也可以將它們添加到現(xiàn)有代碼已確認(rèn)其正確性。
在編寫(xiě)單元測(cè)試時(shí),注意不要隨意地在基礎(chǔ)結(jié)構(gòu)上引入依賴(lài)項(xiàng)。這些依賴(lài)項(xiàng)往往使測(cè)試更慢,更脆弱,因此應(yīng)該將其保留用于繼承測(cè)試。可以通過(guò)遵循顯示依賴(lài)性原則,使用依賴(lài)注入從框架請(qǐng)求依賴(lài)關(guān)系,以此來(lái)避免應(yīng)用程序代碼中地這些隱藏依賴(lài)關(guān)系。
?
1.xUnit.net 單元測(cè)試
創(chuàng)建一個(gè) .net core 類(lèi)庫(kù)項(xiàng)目,創(chuàng)建一個(gè)用于測(cè)試的方法:
public class UnitTest{public bool IsNum(string obj){var i = 0;return int.TryParse(obj, out i);}}然后添加 xUnit 測(cè)試項(xiàng)目:
創(chuàng)建測(cè)試成功和測(cè)試失敗的方法:
public class UnitTest1{private UnitTest myTest;public UnitTest1(){myTest = new UnitTest();}[Fact]public void TestSuccess(){Assert.True(myTest.IsNum("1"));}[Fact]public void TestFail(){Assert.True(myTest.IsNum("q"));}}[Fact] 特性將方法表示為單個(gè)測(cè)試。
在 VS 工具欄中選擇 測(cè)試-- 運(yùn)行 -- 所有測(cè)試,顯示一個(gè)成功,一個(gè)失敗:
也可以使用?[Theory] 特性執(zhí)行相同的代碼,但具有不同輸入?yún)?shù)的測(cè)試,使用?[InlineData] 特性來(lái)指定這些輸入的參數(shù):
[Theory][InlineData("-1")][InlineData("0")]public void Test(string str){Assert.True(myTest.IsNum(str));}?
2.MSTest 單元測(cè)試
xUnit 使跨平臺(tái)的良好選擇,在面向 Windows 時(shí),MSTest 是一個(gè)更好的選擇,因?yàn)槭枪俜教峁┑闹С帧?/p>
創(chuàng)建 MSTest 測(cè)試項(xiàng)目,同樣添加測(cè)試成功和失敗的方法,在方法上添加 [TestMethod] 特性,并在類(lèi)上添加特性 [TestClass]:
[TestClass]public class UnitTest1{private UnitTest myTest;public UnitTest1(){myTest = new UnitTest();}[TestMethod]public void TestSuccess(){Assert.IsTrue(myTest.IsNum("1"));}[TestMethod]public void TestFail(){Assert.IsTrue(myTest.IsNum("q"));}}?
轉(zhuǎn)載于:https://www.cnblogs.com/afei-24/p/11407023.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的.NET Core 单元测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 三星gear手表设置(三星gear手表应
- 下一篇: 二傻子是爱你的意思吗