2008-11-10 230 views
4

我相信我已經知道了答案,但我不是100%確定的,所以只是一個簡單的問題:紅色/綠色測試實際上意味着什麼?我認爲它是「先寫測試,以便它們都失敗(=全部是紅色),然後編寫代碼並觀察每個測試如何變成綠色,並且當所有測試都是綠色時,你就沒事了。」什麼是紅色/綠色測試?

我在Scott's MVC Talk at Mix裏聽說過這個,所以我不知道這是一個「官方」的術語還是他只是補充了。 (編輯:斯科特實際上也說明它開始於55:00分,他取得了良好的話,爲什麼他在這beleives)

+1

紅色|綠色測試不是TDD。只有當你完成所有3:Red |綠色|每個週期都有藍色,藍色應用於測試和生產代碼。要時刻銘記在心。 – PositiveGuy 2018-01-07 05:56:48

回答

11

它是指TDD或測試驅動開發,但它也適用於每一個測試。先寫測試,然後編寫代碼通過測試。先寫所有的測試是錯誤的。 TDD是一種增量式開發方法。

基本思想是在測試失敗(RED)之前寫入代碼。當你有一個失敗的測試,那麼你寫的代碼通過測試(綠色)。現在您已準備好開始下一個測試 - 即,直到所有測試都是綠色時才進行新的測試。或者重構,就像@Brian指出的那樣。

+0

你的答案並不完全「完整」或準確說明,它需要。這是紅色| GREEN |藍......所有3都是。你不會跳過藍色或看起來藍色。如果你這樣做不是TDD。當人們不想重構時,他們弄得一團糟,而這不是TDD。你期待在每個週期重構......如果可以的話。但是你不要跳過每個週期的重構,並且確保你在每個週期重構你的測試和生產代碼。這就是TDD的真正含義,如果你一直在跳藍,那麼很多人說他們在做TDD,那不是TDD。 – PositiveGuy 2018-01-07 05:54:32

+0

@PitiveitiveGuy當然你可以/需要的時候重新考慮重構。 IIRC,當我寫這個答案時,我們在2008年沒有把它稱爲紅/綠/藍。請注意,我提到重構是您的測試通過後的一個選項。根據我的經驗,每次都不會發生,儘管隨着設計的出現/我最初的想法不同,我經常會重構。 – tvanfosson 2018-01-07 16:08:25

8

「Red-Green-Refactor」是TDD的口頭禪。

http://en.wikipedia.org/wiki/Test-driven_development

當我在辦公室糖果盤下午放縱後糖高峯,我有時喊這句話作爲我的代碼。當你寫出一個失敗的測試用例時,通過喊出「Red!」來獎勵自己,這樣就容易在前面寫測試。並吃了一塊巧克力。 :)

3

當您運行TDD GUI時,顯示屏呈紅色,直到所有測試通過,然後切換爲綠色。

這是測試優先發展的大綱概述。

  1. 寫一些編譯的骨架代碼,有足夠的API可測試。

  2. 編寫測試 - 最初 - 將主要是失敗。紅。

  3. 完成代碼。測試通過。綠色。

在這一點上,你至少有一些工作。但是,你有什麼不是很高的質量。所以你需要重構來提高整體質量。

相關問題