單元測試初入

單元測試的優勢html

  • 方便修改代碼且不引人新的bug。
  • 可大膽重構,提升代碼的質量和提高我的編碼能力。
  • TDD驅動,下降代碼間的耦合,保證代碼質量,快速理清理解代碼.

框架mvc

  1. 單元測試框架:XUnit 2.2.0。asp.net mvc就是用的這個,此內框架還有:NUnit、MSTest等
  2. 測試運行工具:xunit.runner.visualstudio 2.2.0。相似如:Resharper的xUnit runner插件。
  3. 模擬框架:Moq 4.7.10。 asp.net mvc、Orchard使用了。此類框架還有:RhinoMocks、NSubstitute、FakeItEasy等

概念過程:框架

    • AAA邏輯順序
      • 準備(Arrange)對象,建立對象,進行必要的設置
      • 操做(Act)對象
      • 斷言(Assert)某件事情是預期的。
    • Assert(斷言):對方法或屬性的運行結果進行檢測
    • Stub(測試存根\樁對象):用返回指定結果的代碼替換方法(去僞造一個方法,阻斷對原來方法的調用,爲了讓測試對象能夠正常的執行)
    • Mock(模擬對象):一個帶有指望方法被調用的存根(可深刻的模擬對象之間的交互方式,如:調用了幾回、在某種狀況下是否會拋出異常。mock是一種功能豐富的stub)

好的測試

    • 測試即文檔
    • 無限接近言簡意賅的天然化語言
    • 測試越簡明越好,每一個測試只關注一個點。
    • 好的測試足夠快,測試易於編寫,減小依賴
    • 好的測試應該相互隔離,不依賴於別的測試,不依賴於外部資源
    • 可描述的命名:UnitOfWorkName_ScenarioUnderTest_ExpectedBehavior(命名可團隊約定,我甚至以爲中文命名也沒什麼不能夠的)
      • UnitOfWorkName  被測試的方法、一組方法或者一組類
      • Scenario  測試進行的假設條件,例如「登入失敗」,「無效用戶」或「密碼正確」等
      • ExpectedBehavior  在測試場景指定的條件下,你對被測試方法行爲的預期 

原文地址:http://www.cnblogs.com/zhaopei/p/UnitTesting.htmlasp.net

相關文章
相關標籤/搜索