我開始並熱愛TDD,但是對紅綠燈概念感到疑惑。理論上我理解確保在通過測試之前可以通過測試失敗的重要性。然而,在實踐中,我發現這種做法有些徒勞無功。紅色綠燈測試的相關性
我覺得如果不實施我打算測試的代碼,我不能正確編寫失敗或通過的測試。例如,如果我編寫測試以顯示DataProvider正在返回DataRow,則需要編寫DAL邏輯以提供有意義的失敗,比空方法更多的NullException或Null返回的失敗,看起來似乎毫無意義,因爲我覺得紅燈應該表明我可以根據我測試的實際邏輯創建一個失敗的測試。
換句話說,如果我只是返回null或false,我正在測試一個函數來測試我的失敗是什麼,真正的紅色光的價值。但是,如果我已經實現了邏輯(這在某種程度上違背了測試的第一範式),我發現我僅僅是爲了測試互斥概念(IsTrue代替IsFalse,或者IsNull代替IsNotNull)獲得紅燈而不是綠燈,然後將它們切換到相反以獲得通行證。
我沒有去理解這個概念,我真的提出這個問題,因爲它是我注意到的,並且想知道如果我做錯了什麼。
編輯
我接受查理·馬丁的答案,因爲它爲我工作最好的,這是不以任何方式暗示,有在其他的答案沒有效力,所有這些都讓我明白一個概念,我是顯然沒有適當地養護
準確無誤。特別是對於更大的測試套件,它往往會發生的事情往往是你忘記添加測試用例。紅色燈光顯示出noop impl確保您的測試實際上正在運行。 – Ole 2009-01-01 15:52:02