2010-02-13 32 views
3

嗨stackoverflow家庭。我們如何擁有單元測試的哲學?

毫無疑問,單元測試在軟件開發中非常重要。但我認爲這是實踐和哲學首先是測試。大多數開發人員都希望使用這種理念,但他們不能在他們的項目中執行它,因爲他們不習慣於測試驅動開發。現在我的問題是關於這個哲學的人。根據你的經驗,好的測試有哪些屬性?以及如何讓它成爲你生活的一部分。

好日子。

+1

不需要知道TDD做單元測試:) – 2010-02-13 14:56:47

+1

這應該是社區wiki – questzen 2010-02-13 15:03:26

回答

8

way of Testivus給單元測試帶來啓發。

  • 如果你寫代碼,寫測試。
  • 不要停留在單元測試教條上。
  • 擁抱單元測試業力。
  • 想象一下代碼和測試。
  • 測試比單元更重要。
  • 測試的最佳時間是代碼是否新鮮。
  • 測試不會浪費掉。
  • 今天一個不完美的測試總比有一天完美的測試要好。
  • 醜陋的測試比沒有測試好。
  • 有時,測試證明手段是正確的。
  • 只有傻瓜纔會使用任何工具。
  • 良好的測試失敗。
2

一個很好的測試的一些特徵:

  • 其執行不依賴於上下文(或狀態) - 即無論是單獨運行或與其它測試一起;
  • 它只測試一個功能單元;它涵蓋了被測功能單元的所有可能的場景。
1

我一直認爲TDD的規則和哲學是羅伯特C在本文中最好的總結。馬丁:

The Three Rules of TDD

在書中,他總結了TDD與以下三個規則:

  • 你不允許寫任何的生產代碼,除非它是讓 失敗的單元測試通過。
  • 您不允許再寫足夠多的單元測試 失敗;並且編譯失敗是 失敗。
  • 您不允許再編寫比 更多的產品代碼,足以通過一個失敗的 單元測試。

有一個隱含的第四條規則:

  • 你應該重構你的代碼,而測試都通過。

雖然有很多更詳細的例子,文章和書籍,但我認爲這些規則很好地總結了TDD。