官术网_书友最值得收藏!

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í)行。

主站蜘蛛池模板: 抚宁县| 塔城市| 来宾市| 文成县| 怀远县| 财经| 宁都县| 来凤县| 南平市| 鄂托克前旗| 宣武区| 永仁县| 缙云县| 那曲县| 肇东市| 天镇县| 岐山县| 杭锦旗| 丰原市| 扎囊县| 临清市| 乌拉特前旗| 东乡县| 襄樊市| 东山县| 腾冲县| 前郭尔| 新化县| 永川市| 连州市| 长兴县| 扶绥县| 广水市| 新密市| 中西区| 饶阳县| 云梦县| 红原县| 新津县| 呼伦贝尔市| 磐石市|