- 測試驅(qū)動開發(fā):入門、實戰(zhàn)與進階
- (美)薩利姆·西迪基
- 742字
- 2024-04-12 19:15:15
1.1 TDD的基本流程:紅-綠-重構(gòu)循環(huán)
測試驅(qū)動開發(fā)遵循這樣一個三階段的流程:
1.紅(Red)。意思是指編寫一個失敗的(也就是無法通過的)測試,這里所說的失敗,包括無法通過編譯的情況〔也包括雖然能夠通過編譯,但是在運行的時候無法滿足需求的情況〕。我們運行測試套件(test suite),以確認這種測試確實無法通過。
2.綠(Green)。意思是我們只編寫最少量的代碼,讓測試得以通過。我們運行測試套件,以確認這樣寫確實能讓測試通過。
3.重構(gòu)(Refactor)。意思是我們把代碼壞味(code smell,又叫代碼異味,也就是有壞味的、不良的代碼)給除掉。這種代碼包括重復的代碼、用硬編碼的值(也就是寫死的值)來實現(xiàn)的代碼,以及那種未能采用某語言所推薦的編程機制來書寫的代碼(比方說,你本應使用該語言內(nèi)置的迭代器機制,但卻手工編寫了一個繁雜的循環(huán)結(jié)構(gòu))。如果我們在重構(gòu)過程中把測試給破壞了,那么應該先讓測試變綠〔也就是恢復到能夠通過測試的狀態(tài)〕,然后再結(jié)束該環(huán)節(jié)。
這就是紅-綠-重構(gòu)循環(huán)(Red-Green-Refactor cycle, RGR環(huán)),如圖1-1所示。該循環(huán)的三個環(huán)節(jié)正是測試驅(qū)動開發(fā)的三個基本要素。本書接下來就要遵照這樣的循環(huán)來編寫代碼。

圖1-1:紅-綠-重構(gòu)循環(huán)是測試驅(qū)動開發(fā)的基礎
紅-綠-重構(gòu)循環(huán)中的這三個環(huán)節(jié)是TDD的基本要素。
遵循RGR環(huán)做開發(fā)
整本書都會遵循RGR環(huán)中的三個步驟來做開發(fā)。我們會相當嚴格地遵守這套紀律,大家剛開始一定要慢一些,等熟悉了之后再提速。這一章會明確用三節(jié)來演示這三個步驟。從第2章開始,我們會更迅速地(而且通常也是更順暢地)從第一個環(huán)節(jié)(紅)進入第二個環(huán)節(jié)(綠),然后進入第三個環(huán)節(jié)(重構(gòu)),到了那個環(huán)節(jié),我們會把注意力放在尋找應該重構(gòu)的代碼上。我們的開發(fā)速度快起來之后,這種從一個環(huán)節(jié)進入下一個環(huán)節(jié)的速度也會相應變快。然而無論如何,這三個環(huán)節(jié)都在,而且會按照先紅,再綠,最后重構(gòu)的順序執(zhí)行。
- TypeScript Essentials
- The Modern C++ Challenge
- Game Programming Using Qt Beginner's Guide
- 用Python實現(xiàn)深度學習框架
- 實戰(zhàn)Java高并發(fā)程序設計(第3版)
- 基于Swift語言的iOS App 商業(yè)實戰(zhàn)教程
- jQuery開發(fā)基礎教程
- The HTML and CSS Workshop
- Create React App 2 Quick Start Guide
- 用戶體驗可視化指南
- JavaScript+jQuery網(wǎng)頁特效設計任務驅(qū)動教程
- Python網(wǎng)絡爬蟲技術(shù)與應用
- GitHub入門與實踐
- 工業(yè)機器人離線編程
- Magento 2 Beginners Guide