VS2012 Unit Test 個人學習彙總(含目錄)

dong.net發表於2013-10-22

首先,給出MSDN相關地址:http://msdn.microsoft.com/en-us/library/Microsoft.VisualStudio.TestTools.UnitTesting.aspx (類庫)

    Verifying Code by Using Unit Tests (介紹)

我的IdleTest原始碼地址:http://idletest.codeplex.com/

VS2012單元測試的主要類:Assert、StringAssert、CollectionAssert,具體可參照上述連結的MSDN介紹。

 單元測試一直都想接觸,但是礙於沒有那樣的工作環境,故只能由自己在業餘時間去做這個事,整個過程下來,最大的感觸是我寫程式碼的質量原來可以這麼好,在此之前,通常我編寫的程式碼有很大一部分在程式執行前都是有bug的,但是通過單元測試,基本上在程式執行之前(除錯階段)就扼殺了這些bug的大多數,單元測試程式碼有問題除外,這也是我堅持單元測試的最大動力,其次就是單元測試可以促使我在編碼中努力去遵循SOLID,提別是單一職責原則。

我個人在學習單元測試中基本都寫成了部落格,便於記錄,以下為目錄。

目錄:

1.《在Visual Studio 2012使用單元測試》、

2.《VS2012 單元測試之泛型類(Generics Unit Test)》、

3.《VS2012 Unit Test —— 我對介面進行單元測試使用的技巧

4.《VS2012 Unit Test(Void, Action, Func) —— 對無返回值、使用Action或Func作為引數、多過載的方法進行單元測試

5.《VS2012 Unit Test——Microsoft Fakes入門

6.《VS2012 Unit Test —— 我對IdleTest庫動的大手術以及對Xml相關操作進行測試的方式

 

  插曲:前段時間與某個公司的開發經理(反正是管理開發的)聊過,問我最近在搞什麼技術,答曰小酌單元測試,其反問”要改當測試人員了啊“。由此可見還是很多做開發的誤以為單元測試應由測試人員來做,單元測試應該是100%由開發人員完成,甚至我們碼農還要編寫整合測試程式碼。

  單元測試只是TDD的一部分,其他的例如還有整合測試等。而TDD不但是編碼的事,還是測試的事,更是設計的事,即為整個專案團隊的事,所以絕對不是說用就用的,我這也算是發發牢騷罷了,發完還是要回頭去幹改bug的活。

 

  以下摘自《C#測試驅動開發》。

  TDD優點(簡言之就是使設計更佳,缺陷更少):

    1.一開始就保證程式碼的質量;

    2.使開發人員更遵循SOLID原則;

    3.確保程式碼與業務需求之間的高度一致性;

    4.TDD鼓勵建立更簡單、針對性更強的庫和API;

    5.鼓勵與業務使用者多溝通;

    6.有助於從系統中清除那些沒有用到的程式碼;

    7.提供了內建迴歸測試;

    8.終止了遞迴錯誤的出現

    9.可以得到開放的、可擴充套件的、靈活的體系結構。

 

  單元測試框架:NUnit、MSTest(上述文中所用的)、MbUnit、xUnit。

  模擬框架:Fakes(MSTest的模擬框架)、Moq、Rhino Mocks、Type Mock

  依賴注入框架:Structure Map、Unity、Windsor、Autofac

 

能力有限,錯漏難免,歡迎批評指正!!

參考資料:MSDN、C#測試驅動開發(Professional Test Driven Development with C#)

 

 

相關文章