定義
TDD是一種不同于傳統(tǒng)軟件開發(fā)流程的新型開發(fā)方法。它要求在編寫某個功能的代碼之前先編寫測試代碼,然后值編寫使測試通過的功能代碼,通過測試來推動整個開發(fā)的進(jìn)行。有助于編寫簡介可用和高質(zhì)量 的代碼,并加速開發(fā)過程。
TDD編碼方式與傳統(tǒng)編碼方式的區(qū)別
傳統(tǒng)的編碼方式
傳統(tǒng)編碼方式需求分析細(xì)節(jié)不清楚,細(xì)節(jié)不明物而,需要不斷的跟業(yè)務(wù)人員確認(rèn),代碼寫好后很亂,不敢動手修改。
TDD編碼方式
先分解任務(wù),然后寫例子,用實(shí)例化需求澄清細(xì)節(jié),然后寫測試,只關(guān)注需求就好,接著寫實(shí)現(xiàn),在通過測試之后再進(jìn)行重構(gòu),用重構(gòu)的方法消除代碼里的不足 ,寫完之后,在手動測試一下,如果還有問題補(bǔ)個用例,修復(fù)一下,轉(zhuǎn)測試,補(bǔ)用例,修復(fù)就好了。這樣寫出來的代碼很整潔,而且容易修改。
為什么TDD
使用TDD的話我們會提高效率,提前確認(rèn)需求,減少開發(fā)的中斷和等待 ,節(jié)省調(diào)試空間。質(zhì)量方面搞測試覆蓋率而且自動回歸測試,所以會提高代碼質(zhì)量。
如何做TDD
兩種途徑:
做設(shè)計(jì)
先做好設(shè)計(jì),再用測試驅(qū)動的方式,小步快走,穩(wěn)妥的吧程序做出來
不做設(shè)計(jì)先實(shí)現(xiàn)最基本的需求,在不斷地添加更復(fù)雜的需求,慢慢的將程序驅(qū)動出來
做TDD的步驟
- 快速新增一個測試
- 運(yùn)行所有的測試(有時只需要運(yùn)行一個或者一部分),發(fā)現(xiàn)新增的測試不能通過
- 做一些小小的改動,盡快地讓測試程序可運(yùn)行,為此可以再程序中使用一些不合情理的方法
- 運(yùn)行所有的測試,并且全部通過
- 重構(gòu)代碼, 以消除重復(fù)設(shè)計(jì),優(yōu)化設(shè)計(jì)結(jié)構(gòu)