下載地址:
第13章測試驅(qū)動編程.rar? 或者?
下載TDD及它的優(yōu)點(diǎn)
?
??? 上面這種編程的方式,就叫“測試驅(qū)動編程Test Driven Development (TDD)”,因?yàn)槲覀兛偸窃趯懻嬲a之前寫一個通不過的測試,然后再寫真正的代碼,讓測試通過。
??? 跟測試后行的開發(fā)方式相比,它有如下好處:
??????????????????????????????????????????????????????
??? 1.為了更容易的寫單元測試,我們會廣泛的使用接口(比如StudentRegistryChecker等)。這個會讓單元測試代碼很容易讀跟寫,因?yàn)闇y試代碼里面沒有多余的數(shù)據(jù)。如果我們不用TDD而是直接寫實(shí)現(xiàn)的話,我們經(jīng)常會使用現(xiàn)成的類(比如StudentSet),測試為了調(diào)用現(xiàn)成的類,就不得不創(chuàng)建很多多余的數(shù)據(jù),創(chuàng)建很巨型的對象,就像Student或者Course。
???
??? 2.因?yàn)閺V泛的使用接口,我們的類之間就不會藕合(比如EnrollmentSet就一點(diǎn)都不知道StudentSet的存在),因此重用性更好。
?
??? 3.寫單元測試的時候,很容易就可以為一個行為寫一個測試用例,讓它通過,然后為另一種行為寫另一個測試用例。也就是說,整個任務(wù)會被劃分成很多小的任務(wù),獨(dú)立完成。如果我們不用TDD而直接實(shí)現(xiàn)的話,我們很容易就會同時把所有的行為都實(shí)現(xiàn)了。這樣花的時間長,而且在這相當(dāng)長的時間里面,寫的代碼都是沒有測試過,不能保證準(zhǔn)確性的。相反的,用TDD的話,我們只實(shí)現(xiàn)要測的行為的代碼。它只花費(fèi)很少的時間(幾分鐘),而且可以馬上測試。