That way I want to stay

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            55 Posts :: 1 Stories :: 41 Comments :: 0 Trackbacks
          下載地址: 第13章測(cè)試驅(qū)動(dòng)編程.rar? 或者? 下載

          TDD及它的優(yōu)點(diǎn)

          ?

          ??? 上面這種編程的方式,就叫“測(cè)試驅(qū)動(dòng)編程Test Driven Development (TDD)”,因?yàn)槲覀兛偸窃趯?xiě)真正代碼之前寫(xiě)一個(gè)通不過(guò)的測(cè)試,然后再寫(xiě)真正的代碼,讓測(cè)試通過(guò)。

          ??? 跟測(cè)試后行的開(kāi)發(fā)方式相比,它有如下好處:

          ??????????????????????????????????????????????????????

          ??? 1.為了更容易的寫(xiě)單元測(cè)試,我們會(huì)廣泛的使用接口(比如StudentRegistryChecker等)。這個(gè)會(huì)讓單元測(cè)試代碼很容易讀跟寫(xiě),因?yàn)闇y(cè)試代碼里面沒(méi)有多余的數(shù)據(jù)。如果我們不用TDD而是直接寫(xiě)實(shí)現(xiàn)的話,我們經(jīng)常會(huì)使用現(xiàn)成的類(比如StudentSet),測(cè)試為了調(diào)用現(xiàn)成的類,就不得不創(chuàng)建很多多余的數(shù)據(jù),創(chuàng)建很巨型的對(duì)象,就像Student或者Course

          ???

          ??? 2.因?yàn)閺V泛的使用接口,我們的類之間就不會(huì)藕合(比如EnrollmentSet就一點(diǎn)都不知道StudentSet的存在),因此重用性更好。

          ?

          ??? 3.寫(xiě)單元測(cè)試的時(shí)候,很容易就可以為一個(gè)行為寫(xiě)一個(gè)測(cè)試用例,讓它通過(guò),然后為另一種行為寫(xiě)另一個(gè)測(cè)試用例。也就是說(shuō),整個(gè)任務(wù)會(huì)被劃分成很多小的任務(wù),獨(dú)立完成。如果我們不用TDD而直接實(shí)現(xiàn)的話,我們很容易就會(huì)同時(shí)把所有的行為都實(shí)現(xiàn)了。這樣花的時(shí)間長(zhǎng),而且在這相當(dāng)長(zhǎng)的時(shí)間里面,寫(xiě)的代碼都是沒(méi)有測(cè)試過(guò),不能保證準(zhǔn)確性的。相反的,用TDD的話,我們只實(shí)現(xiàn)要測(cè)的行為的代碼。它只花費(fèi)很少的時(shí)間(幾分鐘),而且可以馬上測(cè)試。

          posted on 2006-12-11 16:50 Wingel 閱讀(1133) 評(píng)論(0)  編輯  收藏 所屬分類: 敏捷開(kāi)發(fā)
          主站蜘蛛池模板: 贡嘎县| 安义县| 乾安县| 舟曲县| 宁都县| 庆云县| 盐城市| 海门市| 和林格尔县| 英山县| 凌海市| 井陉县| 纳雍县| 焦作市| 澎湖县| 晴隆县| 赤城县| 陇西县| 宝山区| 禄丰县| 鸡泽县| 山东省| 台江县| 苏尼特右旗| 绵阳市| 墨脱县| 静宁县| 文登市| 普安县| 剑川县| 姚安县| 吴忠市| 甘泉县| 盐源县| 枣阳市| 苍南县| 通州区| 北川| 雷州市| 信阳市| 牙克石市|