單元測試能夠更快地發現代碼中的錯誤,所以各個編程語言都擁有了專門的單元測試框架。本文按照通常的開發流程來討論單元測試框架,即需求分析、設計實現,應用模型等等,但願能夠提取單元測試的共性,爲理解不一樣的測試框架提供支持。html
從單元測試的機制能夠發現一部分隱藏需求,總結以下: 正則表達式
知足以上幾點,單元測試甚至能夠做爲一個能夠執行的規格說明和文檔。編程
現有的單元測試通常由一個軟件框架支持,提供對需求的基本支持,以gtest爲例: 框架
測試框架的序列圖如上,其中Fixture是須要用戶定製的測試場景,最簡單的狀況就是場景中只有待測系統SUT,並且不須要設置,例如測試一個函數時的狀況。編程語言
軟件框架只有定製之後,才能發揮做用。對於不一樣應用場景的定製,仍然遵循通常的軟件原則,例如模塊化,DRY(不要重複本身),開閉原則(對修改封閉,對擴展開放)等等。須要強調的是: 模塊化
開發單元測試框架仍然須要遵照通常的開發規範,所以從框架規範中整理出框架背後的需求、設計和實現的一些內容,對於理解和執行單元測試,能夠提供額外的幫助。函數
[1] Gerard Meszaros,XUnit test patterns : refactoring test code,Pearson Education, Inc, 2007 性能
[2] Gtest, https://code.google.com/p/googletest/wiki/V1_7_Documentation 單元測試
[3] Gtest, http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html測試