<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教程-easymock的典型使用

     
        關(guān)于easymock的典型使用方式,在easymock的官網(wǎng)文檔中,有非常詳盡的講解,文檔地址為 http://easymock.org/EasyMock3_0_Documentation.html,文檔的開頭一部分內(nèi)容都是easymock中最基本的使用介紹,雖然是英文,但是非常容易看懂,適用新學(xué)者入門。

        這里只羅列一些簡(jiǎn)單的常用功能,依然以前面教程中使用到的測(cè)試案例為例:

       

     public class UserServiceImplTest extends Assert {

            @Test
            
    public void testQuery() {
        
                User expectedUser 
    = new User();
                user.set.;
                UserDao userDao  
    = Easymock.createMock(UserDao.class);
                Easymock.expect(userDao.getById(
    "1001")).andReturn(expectedUser);
                Easymock.replay(userDao);

                UserServiceImpl  service 
    = new UserServiceImpl();
                service.setUserDao(userDao);
                user user 
    = service.query("1001");
                assertNotNull(user);
                assertEquals();    
    //veify return user

                Easymock.verify(userDao);

            }


        }


     
        這段簡(jiǎn)短的代碼中包含以下easymock的功能:

        1. 創(chuàng)建mock對(duì)象 
            UserDao userDao  = Easymock.createMock(UserDao.class);

     
        2. 記錄mock對(duì)象期望的行為
             Easymock.expect(userDao.getById("1001")).andReturn(expectedUser);

             這里記錄了mock對(duì)象的行為:getById()方法被調(diào)用,調(diào)用次數(shù)為1(easymock之中如果沒有明確指出調(diào)用次數(shù),默認(rèn)為1),參數(shù)為"1001",expectedUser將作為返回值。


        3. 進(jìn)入replay階段
             Easymock.replay(userDao);

        4. 對(duì)mock對(duì)象執(zhí)行驗(yàn)證
             Easymock.verify(userDao);

        對(duì)上面上面的代碼稍加改動(dòng)以展示easymock的其他基本功能

        1. 指定期望的調(diào)用次數(shù)

             Easymock.expect(userDao.getById("1001")).andReturn(expectedUser).times(3);

        2. 指定拋出期望的異常

             Easymock.expect(userDao.getById("1001")).andThrow(new RuntimeException("no user exist"));

        3. 記錄void 方法的行為

             Easymock.expect(userDao.getById("1001")) 這樣的用法只能使用與mock對(duì)象的有返回值的方法,如果mock對(duì)象的方法是void,則需要使用expectLastCall():

             userDao.someVoidMethod();
             Easymock.expectLastCall();
     
              和Easymock.expect(***)一樣,同樣支持指定調(diào)用次數(shù),拋出異常等:

             Easymock.expectLastCall().times(3);
             Easymock.expectLastCall().andThrow(new RuntimeException("some error"));

        4. 靈活的參數(shù)匹配
             Easymock.expect(userDao.getById(Easymock.isA(String.class))).andReturn(expectedUser);

              類似的還有anyInt(),anyObject(), isNull() , same(), startsWith()等諸多實(shí)現(xiàn)。

     

     

    posted on 2010-10-15 17:14 sky ao 閱讀(13865) 評(píng)論(0)  編輯  收藏 所屬分類: software test

    主站蜘蛛池模板: 人人玩人人添人人澡免费| 国产成人一区二区三区视频免费| 国产三级在线观看免费| 久久亚洲精精品中文字幕| 免费无码又爽又刺激高潮视频| 亚洲αv在线精品糸列| 国产免费人成视频尤勿视频| 国产国拍精品亚洲AV片| 美女无遮挡拍拍拍免费视频 | 图图资源网亚洲综合网站| 免费国产成人α片| 亚洲视频在线观看网站| 成人免费的性色视频| 亚洲日韩精品A∨片无码加勒比| 国产成人精品免费视频大全五级| 牛牛在线精品观看免费正 | 久久精品国产亚洲AV麻豆网站| 国产成人免费高清激情明星| 亚洲国产日韩精品| 亚洲成aⅴ人片久青草影院| 有色视频在线观看免费高清在线直播| 自拍偷自拍亚洲精品被多人伦好爽| 暖暖免费在线中文日本| 亚洲剧情在线观看| 波多野结衣中文一区二区免费| 中文字幕高清免费不卡视频| 亚洲精品一区二区三区四区乱码| 成人免费在线观看网站| 日本一区二区三区在线视频观看免费| 国产亚洲综合久久系列| 99热在线精品免费全部my| 美女裸体无遮挡免费视频网站| 亚洲精品无码不卡在线播HE| 青青青国产在线观看免费网站| 国产精品亚洲综合一区在线观看| 国产v亚洲v天堂无码网站| 免费H网站在线观看的| 亚洲精品偷拍视频免费观看| 亚洲国产精品专区| 精品国产香蕉伊思人在线在线亚洲一区二区 | 日美韩电影免费看|