Sky's blog

          我和我追逐的夢

          常用鏈接

          統(tǒng)計

          其他鏈接

          友情鏈接

          最新評論

          推薦升級easymock到新的3.0版本

              一直在使用easymock作為mock工具,但是easymock有一個一直令我極其惱火的地方:easymock將interface和class的mock區(qū)分開,給出了針對interface mock的easyMock和針對class mock的easyMock class extension。兩種mock被嚴(yán)格區(qū)分開,連jar包都是兩個,使用時不能混用,比如不能用easymock (非class extension)來mock class。

              這也就算了,最要命的地方是,easyMock和easyMock class extension在使用時,class名是相同的,只是package不同。這會導(dǎo)致一個非常令人抓狂的問題:如果在同一個測試類中,需要同時使用interface mock和class mock,就必須同時使用org.easymock.EasyMock和org.easymock.classextension.EasyMock,由于java import只能import一個,因此另外一個就必須使用全限定名,如:

          import org.easymock.EasyMock;
          ...
              Easymock.createMock(...);
              org.easymock.classextension.EasyMock.createMock(...);

              編碼的時候稍有不慎就搞錯,代碼難寫而且難看。很明顯,這是一個沒有必要的設(shè)計,因為使用者通常并不關(guān)心mock的是interface還是class。

              近日得知easymock已經(jīng)發(fā)布了新的3.0版本,該版本的主要改進(jìn)就是消除上述的問題,新版本中可以直接mock class,不再強制使用easyMock class extension。

              以下是easymock官網(wǎng) http://easymock.org/ 的發(fā)布信息:

          010-05-08: EasyMock 3.0 is available. Perform class mocking directly. EasyMock 1 classes removed.
          2010-05-08: EasyMock 3.0 Class Extension is available. Now deprecated. Only a proxy over EasyMock to provide backward compatibility.

              可以看到為了兼容2.*版本的就有代碼,3.0之中還是發(fā)布了Class Extension版本,作為舊有的2.*代碼和新的3.0之間的代理。不過明確標(biāo)記為"deprecated"了。

              試用了一下,新的3.0版本中,直接使用org.easymock.EasyMock,可以在同一個case中同時混合mock interface和class,使用方式和以往相同。恩,明顯感覺使用方便了許多。

              順便做了一下兼容性測試,針對舊有的使用2.*版本的class mock的測試案例,嘗試使用兩種方法:

              1. 不修改原有代碼,使用3.0的class extension來保持兼容
          代碼編譯通過,測試案例正常運行。
          這個方案適合項目較大時先整體升級,保證測試案例可以運行,后續(xù)再逐步轉(zhuǎn)移到3.0版本。

              2. 修改原有代碼,不再使用class extension
          代碼只需一個改動,即將原有的org.easymock.classextension.EasyMock 修改為org.easymock.EasyMock,通常只要簡單修訂import即可。eclipse下簡單ctrl + shift + o 一招即可搞定。

              兩個方法組合使用,就可以平穩(wěn)的將原有的2.*的測試案例轉(zhuǎn)移到新的3.0版本中。

              強烈推薦還在使用easymock 2.*的朋友們升級到3.0版本。

          posted on 2010-06-26 20:33 sky ao 閱讀(2225) 評論(1)  編輯  收藏 所屬分類: software test

          評論

          # re: 推薦升級easymock到新的3.0版本 2010-06-26 20:41 18傲骨中文

          雖然看不懂 但還是要頂下~~  回復(fù)  更多評論   

          主站蜘蛛池模板: 漠河县| 雷山县| 鄂托克前旗| 肇东市| 留坝县| 龙岩市| 志丹县| 藁城市| 铁岭市| 漳州市| 泸定县| 波密县| 九龙城区| 互助| 义马市| 盐津县| 和政县| 独山县| 禹州市| 石狮市| 太保市| 洛阳市| 肇州县| 民乐县| 永昌县| 湘乡市| 杭州市| 道孚县| 赤城县| 信丰县| 洛南县| 海林市| 湖南省| 成安县| 万安县| 屏南县| 荆州市| 昭通市| 仁寿县| 龙川县| 临邑县|