<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sky's blog

    我和我追逐的夢(mèng)

    常用鏈接

    統(tǒng)計(jì)

    其他鏈接

    友情鏈接

    最新評(píng)論

    easymock教程-命名mock對(duì)象

        在創(chuàng)建mock對(duì)象的時(shí)候,我們可以命名mock對(duì)象。

        前面我們談到easymock中有三種mock對(duì)象,分別用下面三個(gè)方法創(chuàng)建:

    createMock(Class<T> toMock)
    createStrictMock(Class
    <T> toMock)
    createNiceMock(Class
    <T> toMock)

        帶有命名功能的方法也有對(duì)應(yīng)的三種:

    createMock(String name, Class<T> toMock)
    createStrictMock(String name, Class
    <T> toMock)
    createNiceMock(String name, Class
    <T> toMock)

        命名mock對(duì)象有什么好處呢?其實(shí)就是一點(diǎn),即在當(dāng)測(cè)試案例因?yàn)槟硞€(gè)mock對(duì)象的狀態(tài)或行為不符合要求而失敗的時(shí)候,在異常信息里面可以輸出這個(gè)mock對(duì)象的名稱。

        我們用實(shí)際的例子來看,同樣是創(chuàng)建一個(gè)mock對(duì)象,然后調(diào)用一個(gè)沒有record的方法,easymock報(bào)錯(cuò)退出的測(cè)試案例。

    1. 不命名

        Service service = EasyMock.createMock(Service.class);

        異常信息如下:

    java.lang.AssertionError:
      Unexpected method call execute():
     at org.easymock.internal.MockInvocationHandler.invoke(MockInvocationHandler.java:45)
     at org.easymock.internal.ObjectMethodsFilter.invoke(ObjectMethodsFilter.java:73)
     at net.sourcesky.study.easymock.tutorial.$Proxy4.execute(Unknown Source)
     at net.sourcesky.study.easymock.tutorial.NamingMockTest$Business.execute(NamingMockTest.java:11)
     at net.sourcesky.study.easymock.tutorial.NamingMockTest.testExecute(NamingMockTest.java:31)
     ......

        這里的錯(cuò)誤信息"Unexpected method call execute()",只指出了發(fā)生錯(cuò)誤的是execute()方法,并未指出具體是哪個(gè)mock對(duì)象。
       
        當(dāng)測(cè)試案例簡(jiǎn)單時(shí),比如就一兩個(gè)mock對(duì)象,我們可以直接從方法名上就看出是哪個(gè)mock對(duì)象。但是當(dāng)mock對(duì)象多了之后,尤其是方法很多的時(shí)候,就會(huì)浪費(fèi)時(shí)間。


    2. 命名后

    Service service = EasyMock.createMock("service", Service.class);

        異常信息如下:

    java.lang.AssertionError:
      Unexpected method call service.execute():
     at org.easymock.internal.MockInvocationHandler.invoke(MockInvocationHandler.java:45)
     at org.easymock.internal.ObjectMethodsFilter.invoke(ObjectMethodsFilter.java:73)
     at net.sourcesky.study.easymock.tutorial.$Proxy4.execute(Unknown Source)
     at net.sourcesky.study.easymock.tutorial.NamingMockTest$Business.execute(NamingMockTest.java:11)
     at net.sourcesky.study.easymock.tutorial.NamingMockTest.testExecute(NamingMockTest.java:30)

        差別只在錯(cuò)誤信息中"Unexpected method call serviceMock.execute()" 包含serviceMock的字樣,因此我們可以快遞定位到具體的mock對(duì)象。

        命名mock對(duì)象在初次編寫測(cè)試案例時(shí)用處還不是很明顯,因?yàn)榫帉懻弋?dāng)時(shí)肯定對(duì)代碼很熟悉。但是當(dāng)另外一個(gè)開發(fā)人員因?yàn)槟炒诵薷拇a造成測(cè)試案例不能通過時(shí),由于這個(gè)開發(fā)人員對(duì)代碼的熟悉程度不夠,因此命名mock對(duì)象可以對(duì)他有所幫助,方便維護(hù)。

        命名之后的mock對(duì)象,還有一個(gè)特殊的地方就是toString()方法將返回該mock對(duì)象的名稱,以代碼為例:

            Service service = EasyMock.createMock("service", Service.class);
            System.out.println(service.toString());

        輸出就是"service",對(duì)比不命名mock對(duì)象的情況:

            Service service = EasyMock.createMock(Service.class);
            System.out.println(service.toString());

        得到的輸出是"EasyMock for interface net.sourcesky.study.easymock.tutorial.NamingMockTest$Service".

     

    posted on 2010-11-29 16:34 sky ao 閱讀(2490) 評(píng)論(1)  編輯  收藏 所屬分類: software test

    評(píng)論

    # re: easymock教程-命名mock對(duì)象 2010-11-30 11:41 百思寒羽絨被

    學(xué)習(xí)了,呵呵  回復(fù)  更多評(píng)論   

    主站蜘蛛池模板: 国产亚洲精品自在久久| 成人超污免费网站在线看| 狠狠色婷婷狠狠狠亚洲综合 | 国产成人免费片在线观看| 亚洲国产日韩视频观看| 最近中文字幕无吗免费高清| 亚洲一区二区三区在线观看网站| 久久精品女人天堂AV免费观看| 国产 亚洲 中文在线 字幕 | 色欲国产麻豆一精品一AV一免费 | 亚洲美女激情视频| 美女视频黄的全免费视频网站| 2020天堂在线亚洲精品专区| 国外成人免费高清激情视频| 在线观看国产一区亚洲bd| 亚洲?V乱码久久精品蜜桃| fc2免费人成为视频| 亚洲国产精品第一区二区| 啦啦啦完整版免费视频在线观看| 亚洲一欧洲中文字幕在线| 永久免费观看的毛片的网站| 免费国产草莓视频在线观看黄| 亚洲精品无码高潮喷水在线| 99久久久国产精品免费蜜臀| 亚洲av专区无码观看精品天堂| 日本一区二区三区日本免费| 国产激情久久久久影院老熟女免费| 亚洲AV无码国产精品色午友在线 | 亚洲综合久久精品无码色欲| 四虎亚洲国产成人久久精品| 久久久久久免费一区二区三区| 亚洲校园春色小说| 可以免费观看一级毛片黄a| A片在线免费观看| 亚洲五月综合网色九月色| 亚洲国产中文v高清在线观看| a毛片免费观看完整| 亚洲欧洲日韩国产一区二区三区| 亚洲精品乱码久久久久久不卡| 男的把j放进女人下面视频免费| 亚洲AV无码无限在线观看不卡|