應用程序測試的類型不少,包括集成測試,Web 測試,負載測試等。在最底層的是單元測試,此測試能夠測試單個軟件組件或方法。單元測試通常只測試開發人員的代碼,不該該測試基礎結構普、問題,如數據庫,文件系統或網絡資源等。單元測試能夠使用測試驅動開發(TDD)編寫,也能夠將它們添加到現有代碼已確認其正確性。數據庫
在編寫單元測試時,注意不要隨意地在基礎結構上引入依賴項。這些依賴項每每使測試更慢,更脆弱,所以應該將其保留用於繼承測試。能夠經過遵循顯示依賴性原則,使用依賴注入從框架請求依賴關係,以此來避免應用程序代碼中地這些隱藏依賴關係。網絡
1.xUnit.net 單元測試框架
建立一個 .net core 類庫項目,建立一個用於測試的方法:工具
public class UnitTest { public bool IsNum(string obj) { var i = 0; return int.TryParse(obj, out i); } }
而後添加 xUnit 測試項目:單元測試
建立測試成功和測試失敗的方法:測試
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] 特性將方法表示爲單個測試。spa
在 VS 工具欄中選擇 測試-- 運行 -- 全部測試,顯示一個成功,一個失敗:.net
也能夠使用 [Theory] 特性執行相同的代碼,但具備不一樣輸入參數的測試,使用 [InlineData] 特性來指定這些輸入的參數:code
[Theory] [InlineData("-1")] [InlineData("0")] public void Test(string str) { Assert.True(myTest.IsNum(str)); }
2.MSTest 單元測試blog
xUnit 使跨平臺的良好選擇,在面向 Windows 時,MSTest 是一個更好的選擇,由於是官方提供的支持。
建立 MSTest 測試項目,一樣添加測試成功和失敗的方法,在方法上添加 [TestMethod] 特性,並在類上添加特性 [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")); } }