隨筆-55  評(píng)論-208  文章-0  trackbacks-0
          記錄點(diǎn)滴經(jīng)驗(yàn),匯聚知識(shí)汪洋

          1、單元測(cè)試時(shí)對(duì)測(cè)試目標(biāo)的明確。
          最近對(duì)單元測(cè)試時(shí)明確測(cè)試目標(biāo)有了新的想法,就是在對(duì)目標(biāo)類進(jìn)行測(cè)試時(shí)一定要明確目標(biāo)類的作用究竟是什么。
          比如說(shuō)對(duì)于一個(gè)5層結(jié)構(gòu)的系統(tǒng)來(lái)說(shuō):數(shù)據(jù)庫(kù),DAO,BL,control,JSP
          其中數(shù)據(jù)庫(kù)和JSP的單元測(cè)試代價(jià)是比較高的,所以不考慮測(cè)試。
          DAO的目標(biāo)是從數(shù)據(jù)庫(kù)獲取數(shù)據(jù),所以可以使用內(nèi)存數(shù)據(jù)庫(kù)或者真實(shí)數(shù)據(jù)庫(kù)等方法直接進(jìn)行測(cè)試,這點(diǎn)通常沒有爭(zhēng)議
          BL層的目標(biāo)是對(duì)業(yè)務(wù)邏輯的封裝,這個(gè)層的測(cè)試通常是比較有爭(zhēng)議的,要明確它僅僅是調(diào)用DAO并進(jìn)行業(yè)務(wù)封裝,所以只需要對(duì)它以來(lái)的DAO進(jìn)行模擬,然后測(cè)試是否正確封裝就可以了。
          control層的目標(biāo)是根據(jù)請(qǐng)求進(jìn)行跳轉(zhuǎn),所以這個(gè)層的測(cè)試方法是,模擬請(qǐng)求對(duì)象和BL,然后檢查是否正確的調(diào)用BL以及正確的跳轉(zhuǎn)。

          2、當(dāng)不好倒轉(zhuǎn)依賴時(shí)進(jìn)行依賴模擬的小技巧。
          情景環(huán)境:我的BL層在對(duì)DAO層的依賴關(guān)系上沒有使用比較靈活的依賴反轉(zhuǎn)方法(這個(gè)是歷史原因^_^),這時(shí)候就對(duì)我在測(cè)試時(shí)對(duì)DAO的模擬上造成了一定的困擾。
          解決辦法:但是所謂辦法總是能像出來(lái)的嗎,我把BL調(diào)用到DAO的地方封裝成一個(gè)統(tǒng)一的方法,然后在BL中定義一個(gè)Map,這個(gè)Map是可以從外部進(jìn)行set的,然后在統(tǒng)一調(diào)用DAO的方法中判斷,如過(guò)map中有設(shè)置就獲取map的,如果map中沒有就獲取原來(lái)緊密耦合的DAO,這樣就可以在測(cè)試的時(shí)候從外部注入模擬的DAO了。
          posted on 2008-03-05 12:11 rocket 閱讀(920) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 苍山县| 禹州市| 贞丰县| 衡东县| 尖扎县| 东乡| 九龙城区| 屏边| 昆明市| 韶关市| 常宁市| 阳春市| 抚宁县| 包头市| 衡南县| 阿城市| 稷山县| 邓州市| 雷山县| 瑞安市| 盐源县| 大兴区| 四平市| 黎川县| 阳朔县| 富民县| 施甸县| 八宿县| 雅江县| 大荔县| 林周县| 慈利县| 亚东县| 宜城市| 东乌| 沙坪坝区| 阳朔县| 福安市| 汶上县| 凌海市| 元谋县|