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

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

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

    Sky's blog

    我和我追逐的夢

    常用鏈接

    統計

    其他鏈接

    友情鏈接

    最新評論

    easymock教程-easymock的典型使用

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

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

       

     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);

            }


        }


     
        這段簡短的代碼中包含以下easymock的功能:

        1. 創建mock對象 
            UserDao userDao  = Easymock.createMock(UserDao.class);

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

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


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

        4. 對mock對象執行驗證
             Easymock.verify(userDao);

        對上面上面的代碼稍加改動以展示easymock的其他基本功能

        1. 指定期望的調用次數

             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對象的有返回值的方法,如果mock對象的方法是void,則需要使用expectLastCall():

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

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

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

              類似的還有anyInt(),anyObject(), isNull() , same(), startsWith()等諸多實現。

     

     

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

    主站蜘蛛池模板: 特色特黄a毛片高清免费观看| 无码乱人伦一区二区亚洲一| 亚洲色欲色欱wwW在线| 2019中文字幕免费电影在线播放 | 亚洲国产香蕉碰碰人人| 一级毛片人与动免费观看| 免费人成视频在线观看视频 | 亚洲日韩激情无码一区| 在线观看人成视频免费无遮挡| 国产亚洲精品看片在线观看| a高清免费毛片久久| 中文字幕在线亚洲精品| 日本免费中文字幕| 久久亚洲AV无码精品色午夜麻豆| ww在线观视频免费观看| 亚洲熟女www一区二区三区| 国产成人精品男人免费| fc2成年免费共享视频网站| 亚洲精品无码成人片久久| 午夜影院免费观看| 亚洲免费视频播放| 亚洲韩国—中文字幕| 无码日韩精品一区二区免费暖暖| 亚洲综合一区二区| 午夜毛片不卡高清免费| 国产精品hd免费观看| 亚洲自偷自拍另类图片二区 | 日韩亚洲国产综合久久久| 好猛好深好爽好硬免费视频| 亚洲性天天干天天摸| 国产成人免费高清激情视频| 人碰人碰人成人免费视频| 亚洲AV无码成人精品区蜜桃| 97无码免费人妻超级碰碰碰碰| 日韩精品免费一线在线观看| 97久久精品亚洲中文字幕无码| 精品久久久久久久免费人妻 | 国产一卡二卡≡卡四卡免费乱码| 最近中文字幕免费大全| 亚洲国产精品一区二区久| 午夜亚洲av永久无码精品|