jinfeng_wang

          G-G-S,D-D-U!

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks
                  在測試中,經(jīng)常涉及到對依賴代碼的處理,這將涉及到系統(tǒng)的結(jié)構(gòu)的設(shè)計。一個好的設(shè)計,必然是容易測試的。代碼之間的依賴被極大的隔離開來,很容易的進(jìn)行測試。如何對對其他層具有依賴的代碼代碼進(jìn)行測試呢?可以有兩種方法:引入stub和引入mock。那么這兩者之間的區(qū)別是什么呢?
              
                  在理解其區(qū)別之前,需要明白一點(diǎn),他們都是為了同一個目標(biāo)而出現(xiàn)的,代替依賴部分,讓原先的“整合測試”簡化為“單元測試”。       

          mock:使用easymock等包,在程序代碼中向被測試代碼注入“依賴部分”,通過代碼可編程的方式模擬出函數(shù)調(diào)用返回的結(jié)果。

          stub:自己寫代碼代替“依賴部分”。它本身就是“依賴部分”的一個簡化實(shí)現(xiàn)。

               實(shí)際上,在能夠使用mock的時候,就不應(yīng)該選擇使用stub。但是有時候是必須使用stub的,例如在對遺留代碼進(jìn)行測試時,該部分代碼不支持“注入”,那么只能將“替代”這個過程外移,使用stub完成此任務(wù)了。
          posted on 2005-04-25 16:41 jinfeng_wang 閱讀(1326) 評論(0)  編輯  收藏 所屬分類: Junit
          主站蜘蛛池模板: 冷水江市| 漳平市| 吉木乃县| 昌宁县| 屯留县| 博罗县| 哈巴河县| 中西区| 凯里市| 贺兰县| 德阳市| 得荣县| 东乡族自治县| 鹤壁市| 乐陵市| 阳新县| 阿城市| 七台河市| 南宫市| 双江| 乡城县| 祥云县| 拜泉县| 兴和县| 兴义市| 大城县| 渝中区| 基隆市| 蒙城县| 建平县| 屏东县| 青岛市| 都兰县| 锡林浩特市| 中宁县| 河源市| 宣威市| 民乐县| 抚宁县| 黑河市| 奈曼旗|