.NET Core 單元測試


  應用程序測試的類型很多,包括集成測試,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] 特性將方法表示為單個測試。

  在 VS 工具欄中選擇 測試-- 運行 -- 所有測試,顯示一個成功,一個失敗:

  也可以使用 [Theory] 特性執行相同的代碼,但具有不同輸入參數的測試,使用 [InlineData] 特性來指定這些輸入的參數:

        [Theory]
        [InlineData("-1")]
        [InlineData("0")]
        public void Test(string str)
        {
            Assert.True(myTest.IsNum(str));
        }

 

2.MSTest 單元測試

  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"));
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM