首先,給出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#)
感謝閱讀,請留下您的意見或疑問! 能力有限,錯漏難免,歡迎指點!
分割線:我的個人原創,請認準 http://freedong.cnblogs.com/ (轉摘不标原文出處可恥)