首先,給出MSDN相關地址:http://msdn.microsoft.com/en-us/library/Microsoft.VisualStudio.TestTools.UnitTesting.aspx (類庫)html
Verifying Code by Using Unit Tests (介紹)框架
個人IdleTest源碼地址:http://idletest.codeplex.com/post
VS2012單元測試的主要類:Assert、StringAssert、CollectionAssert,具體可參照上述連接的MSDN介紹。單元測試
單元測試一直都想接觸,可是礙於沒有那樣的工做環境,故只能由本身在業餘時間去作這個事,整個過程下來,最大的感觸是我寫代碼的質量原來能夠這麼好,在此以前,一般我編寫的代碼有很大一部分在程序運行前都是有bug的,可是經過單元測試,基本上在程序運行以前(調試階段)就扼殺了這些bug的大多數,單元測試代碼有問題除外,這也是我堅持單元測試的最大動力,其次就是單元測試能夠促使我在編碼中努力去遵循SOLID,提別是單一職責原則。學習
我我的在學習單元測試中基本都寫成了博客,便於記錄,如下爲目錄。測試
目錄:編碼
1.《在Visual Studio 2012使用單元測試》、url
2.《VS2012 單元測試之泛型類(Generics Unit Test)》、spa
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#)