XP中的TDD的詳細介紹
在上面的圖中,列出的的是XP的12個團隊實踐。Test-Driven Development是其中之一。
Kent Beck 的著作TDD(Test Driven Development) 中詳細講述了測試驅動開發。
在XP中測試是一種設計,不是簡單的為了測試你的功能是否實現。測試先行一個目的
是可以在代碼編寫之前,保證測試已經寫好;其實這些測試的另一個目的就是設計接口,
保證接口在以後的修改過程中能夠滿足測試(設計)。
實際上,設計已經改變。當你修改單元測試的時候,可能就會遭到抱怨。為什麼?你修改了設計
,別人的代碼是依賴你修改前的測試(設計),那麼新的測試(設計)中的變動可能要影響到
別人已有的代碼。
當你使用TDD的時候一定要說明是測試驅動開發還是測試驅動設計。這兩者是有區別的。測試驅動
開發,是通過測試定義所要開發的功能的接口,然後實現功能的開發過程。對於測試驅動設計,在XP中似乎
已經消失了,而是被測試驅動開發所取代。另外在XP中有用於描述設計的,SimpleDesign ,Design Improvement.
在XP中測試是一種設計,設計之後才有開發,這也就是為什麼要測試先行了。
在XP中測試是一種文檔,用於描述設計。