2008-08-19 88 views
23

單元測試大體上是用測試代碼隔離測試代碼的位。浮現在腦海中,眼前的好處是:單元測試入門

  • 運行測試變得自動化,能和重複
  • 您可以在比更細粒度水平測試通過GUI
點和點擊測試

Rytmis

我的問題是,在工具方面目前有哪些「最佳做法」,以及何時何地使用單元測試作爲日常編碼的一部分?

讓我們試着對語言不可知和涵蓋所有的基礎。

回答

22

好吧,這裏有一些誰不單單測試他應該...咳嗽的一些最佳做法。

  1. 確保您的測試試驗one 件事,一件事而已。
  2. 隨時編寫單元測試。您最好寫before您正在測試的代碼。
  3. 請勿單元測試GUI。
  4. Separate your concerns
  5. 最小化測試的依賴關係。
  6. 模擬behviour與mocks
+0

約翰嗨,你可以解釋爲何你不單元測試GUI? – itsmatt 2008-09-17 19:05:51

1

xUnit系列是單元測試的中流砥柱。它們被集成到Netbeans,Eclipse和其他許多IDE中。它們爲單元測試提供了一個簡單的,結構化的解

我在編寫測試時總會嘗試做的一件事是儘量減少外部代碼的使用。我的意思是:我儘量儘量減少測試的設置和拆卸代碼,儘量避免使用其他模塊/代碼塊。編寫良好的模塊化代碼在安裝和拆卸時不需要太多的外部代碼。

3

所謂的xUnit框架被廣泛使用。它最初是作爲SUnit爲Smalltalk開發的,演變成用於Java的JUnit,現在還有許多其他實現,例如用於.Net的NUnit。這幾乎是事實上的標準 - 如果你說你正在使用單元測試,其他大多數開發人員會認爲你的意思是xUnit或類似的。

3

「最佳實踐」的一個很好的資源是Google Testing Blog,例如Writing Testable Code最近的帖子是一個很好的資源。具體來說,他們的「廁所測試」系列每週帖子非常適合貼在您的魔方或廁所周圍,所以您始終可以考慮測試。

0

NUnit是適用於任何.NET語言的好工具。

單元測試可以以許多方式來使用:

  1. 測試邏輯的代碼單元
  2. 增加分離。如果你不能完全測試一個函數或代碼段,那麼構成它的部分就太相互依賴了。
  3. 驅動發展,有些人寫測試之前,他們編寫的代碼進行測試。這迫使你去思考一下你想要的代碼,什麼,然後給你的時候,你已經來達到的是一個明確的指導方針。
14

你可能想看看TDD on Three Index CardsThree Index Cards to Easily Remember the Essence of Test-Driven Development

卡#1。鮑勃叔叔的三條法則

  • 除了通過失敗的測試之外,不寫任何生產代碼。
  • 只寫足夠的測試來證明失敗。
  • 只寫足夠的產品代碼來通過測試。

卡#2:首要原則

  • 快速:心靈-麻木快,在數百或數千每秒。
  • 隔離:該測試清楚地分離故障。
  • 重複:我可以反覆運行它,它會通過或每次失敗一樣。
  • 自我驗證:測試是明確地傳遞失敗。
  • 及時:產於與小代碼的變化步調一致。

卡#3:TDD

  • 紅色的核心:測試失敗
  • 綠色:測試通過
  • 重構:乾淨的代碼和測試
0

不要忘記重構支持。 .NET上的ReSharper提供了對缺失代碼的自動重構和快速修復。這意味着如果你寫了一個不存在的東西,ReSharper會詢問你是否想創建缺少的東西。