<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

    主站蜘蛛池模板: 亚洲精品无码av天堂| 久久精品国产亚洲AV忘忧草18| 亚洲伦乱亚洲h视频| 亚洲一区二区三区丝袜| 一级毛片大全免费播放下载| 最近免费视频中文字幕大全| 国产精品免费_区二区三区观看| 亚洲Av熟妇高潮30p| 精品特级一级毛片免费观看| 最近2022中文字幕免费视频 | 一区二区三区在线免费| 免费少妇a级毛片人成网| 亚洲国产成人九九综合| 精品国产污污免费网站| 亚洲av日韩av欧v在线天堂| 亚洲成年网站在线观看| 最近免费字幕中文大全视频| 亚洲免费在线观看视频| 国产成人免费爽爽爽视频| 亚洲高清免费在线观看| 在线观看免费视频网站色| 波多野结衣免费视频观看 | 久久精品国产亚洲AV麻豆不卡 | 中文字幕免费在线看线人动作大片| 一二三四在线观看免费高清中文在线观看 | 国产亚洲精品VA片在线播放| 免费看香港一级毛片| 亚洲成aⅴ人片在线观| 国产午夜免费高清久久影院| 亚洲福利电影一区二区?| 日韩av无码久久精品免费| 亚洲人成网亚洲欧洲无码久久| 免费无码专区毛片高潮喷水| 日韩在线免费电影| 亚洲熟伦熟女专区hd高清| 亚洲精品网站在线观看不卡无广告 | 日本免费人成在线网站| 亚洲视频在线观看网址| 日韩精品免费电影| 免费观看男人吊女人视频| 男人天堂2018亚洲男人天堂|