三、如何在實際項目中應用單元測試(.Net項目為例)
1、以NUnit為例,示范幾個簡單的例子
2、單元測試的核心技術
樁對象,是對系統中現有外部依賴的一個替代品,可人為控制
模擬對象,模仿外部依賴,屬于一個偽對象,用于檢驗交互行為
隔離框架
NUnit標簽介紹
[TestFixture],用于標識一個包含NUnit自動化測試的類
[TestCase],用于標識測試方法為一個參數化測試
[ExpectedException],用于標識被測試方法應該拋出異常
[Test],用于標識一個需要被調用的自動化測試
[SetUp],會在測試類中的每個測試運行之前執行
[TearDown],會在測試類中的每個測試運行之后執行
[TestFixtureSetUp],會在測試類中的所有測試運行之前執行
[TestFixtureTearDown],會在測試類中的所有測試運行之后執行
Assert類,用于證明某個假設是否成立
Assert.IsTure(),用于驗證結果是否為true
Assert.IsFalse(),用于驗證結果是否為false
Assert.AreEqual(),用于驗證期望的對象是否與實際一樣
Assert.AreSame (),用于驗證兩個參數引用是否為同一個對象
解除外部依賴的技巧
抽取接口,以允許替換底層實現
在被測類中注入中注入偽對象的實現
注入偽對象的幾種方法
構造函數注入
屬性注入
方法參數(參數注入)
工廠類注入
局部工廠方法注入(不講)
抽取和重寫注入
屬性注入、參數注入和構造函數注入基本一致,只是注入的位置不一樣。屬性注入通過注入樁對象,參數注入通過方法的參數注入樁對象,下面看看工廠類注入
上面的例子,講的都是樁對象的注入,其實模擬對象的注入跟樁對象是一樣的,關鍵是要弄清楚樁對象和模擬對象的區別
樁對象的目的是解除外部依賴,為被測方法傳入一個可控制的對象,讓測試可以進行
模擬對象的目的是測試方法是否向外界發送了信息,檢驗交互行為,所以單元測試檢驗的對象不再是被測方法,而是模擬對象
隔離框架,用于快速生成樁對象和模擬對象,減少開發人員的負擔,常用的隔離框架有Rhion Mocks、Moq等等
原文轉自:http://www.cnblogs.com/jialege/p/3601184.html