測(cè)試驅(qū)動(dòng)開(kāi)發(fā)
測(cè)試驅(qū)動(dòng)開(kāi)發(fā)( TDD)更側(cè)重予測(cè)試自動(dòng)化。20世紀(jì)90年代的極限編程運(yùn)動(dòng)讓它變得流行起來(lái)。
TDD的通常被描述為如下的事件序列:
實(shí)現(xiàn)測(cè)試:顧名思義,你開(kāi)始編寫(xiě)測(cè)試,而后編寫(xiě)代碼。一種實(shí)踐的方式是先指定要開(kāi)發(fā)代碼的接口規(guī)格,然后實(shí)現(xiàn)代碼。為了能編寫(xiě)測(cè)試,開(kāi)發(fā)人員必須得找
到所有相關(guān)的需求規(guī)格、用例和用戶故事。
將重心從編碼切換到理解需求,對(duì)于正確的實(shí)現(xiàn)是很有裨益的。
驗(yàn)證新寫(xiě)的測(cè)試會(huì)失敗:新添加的測(cè)試會(huì)失敗,因?yàn)檫€沒(méi)有實(shí)現(xiàn)正確的行為,才剛編寫(xiě)測(cè)試需要存根和接口。運(yùn)行測(cè)試并且確認(rèn)它會(huì)失敗。
編寫(xiě)實(shí)現(xiàn)測(cè)試的功能:我們編寫(xiě)的代碼不需要多么優(yōu)雅或者高性能。開(kāi)始時(shí),只要讓新測(cè)試通過(guò)即可。
驗(yàn)證新的測(cè)試和舊的測(cè)試會(huì)一起通過(guò):新的測(cè)試通過(guò)時(shí),我們知道新實(shí)現(xiàn)的特性是正確的。舊的測(cè)試也通過(guò),說(shuō)明我們沒(méi)有破壞已有的功能。
重構(gòu)代碼:“重構(gòu)”這個(gè)詞來(lái)源于數(shù)學(xué)。在編程中,它的意思是清理代碼的同時(shí),讓代碼更容易理解和維護(hù)。我們需要重構(gòu)是因?yàn)樵谇懊娴拈_(kāi)發(fā)當(dāng)中小小地耍了點(diǎn)詐。
TDD是和DevOps相符合的風(fēng)格,但它并不是唯一的一個(gè)。主要優(yōu)勢(shì)在于好的測(cè)試套件可以用在持續(xù)集成的測(cè)試中。