測試驅動開發
它是一種開發方式,是靈活開發、極限程式設計的核心部分之一。
它的目标是:可運作的簡潔的代碼。
在TDD中,有着兩項簡單原則:
- 僅當測試化失敗的時候,才編寫新的代碼(産品代碼、功能代碼);
- 去掉重複的部分——重構。
從上産生出一組技術方面複雜的行為準則:
- 必須參考每次修改代碼後代碼運作狀況的回報,逐漸完成設計;
- 必須自己編寫測試;
- 開發環境(如IDea)必須對細微的修改做出響應;
- 設計必須遵從高内聚、低耦合的原則,這便于實施測試。
從上兩條原則也預示了TDD程式設計任務的先後順序:
- 紅色訓示條——編寫一個無法工作的簡單測試(甚至說無法通過編譯)
- 綠色訓示條——迅速使測試工作起來(想方設法,竭盡手段)
- 重構——去掉單純由于使測試工作起來而産生的重複部分(資料的重複-輸入、輸出)
是以TDD的經典三部曲就是:紅色訓示條——綠色訓示條——重構。
面對問題時,要麼一籌莫展,要麼從簡單的地方着手。那麼這樣做吧: 從簡單的地方着手;編寫自動化測試;通過每一次的重構添加一回設計上的構思。
簡單的原則,蘊含了非常好的思維模式,同樣給程式帶來了很好的效果。可以說,除非有着與之對應的測試,不然是不應該存在任何産品代碼——這樣的程式設計,確定了所寫的代碼,全部都是可測試的,這些代碼的正确性有着測試方法的保證,任何錯誤的修改都将立刻提示出來。這給了繼續前進的勇氣。 也可以說,當程式的現有工作代碼全部都被測試所覆寫,這就極大降低了BUG潛伏的隐患。 既然是需要現有測試,那麼就是說現在程式裡沒有任何功能代碼,也是先寫了測試,是以說寫測試時候并不在意程式是否存在這個類或方法、字段,盡管寫測試吧,等測試寫完後,再想方設法使得測試迅速工作起來!重構是非常重要的,簡單來說重構就是對現有代碼的修改——對如何做而不是做什麼。
END
2019年11月3日,09點44分