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

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

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

    新的起點(diǎn) 新的開始

    快樂生活 !

    獲17屆jolt大獎的自動測試工具agitarOne 初體驗之-MockingBird的使用

         大名鼎鼎的AgitarOne就不用解釋了,在昨天的隨筆中有一些解釋,今天主要說說Agitar 中Mockingbird的使用。
        
         為了提高測試代碼的Coverage,僅僅靠AgitarOne來處理2K多行的方法,是肯本不夠的。我現(xiàn)在搞的那個方法覆蓋率才20%,不過比同事的 10%好多了。不過都是測試 異常的Test Case,一個正向的Test Case的沒有。只能硬著頭皮看人家生成的代碼來提高代碼Coverage,在AgitarOne生成代碼中,大量使用了MockingBird來 Mock對像,對于Mock對象我想大家都應(yīng)該很清楚了吧。下面我將概要的介紹以下AgitarOne的MockingBird對象。
         
           MockingBird 最主要的也就是以下5個API:
           1.MockingBird.getProxyObject(), 該方法是創(chuàng)建一個Mock實例,比如我們想創(chuàng)建一個XXXHome 的mock 代碼如下:
              XXXHome xxxHome =(XXXHome)MockingBird.getProxyObject(XXXHome.class)

           2.Mockingbird.setReturnValue()  該方法指定一個方法返回特定的值。比如我們想調(diào)用getConnection 返回一個Mock 真是的Xmock對 
             象, 代碼如下:
              Mockingbird.getReturnValue(getConnection(),Xmock)
    ;
           3.MockingBird.enterRecondingMode() 該方法就是使MockingBird進(jìn)入錄制模式。現(xiàn)在不好說清楚, 下面會有代碼解釋。

           4.MockingBird.enterTestMode()      該方法就是使MockingBird就如測試模式。

           5.MockingBird.setException  該方法使一個方法拋出異常。比如我們想如果調(diào)用getConnection 拋出SQLException,代碼如下:
            
    MockingBird.setException(getConnection,new SQLException("sql exception!"))

    下邊將表述如何使用。
    假如要測試以下方法,在這個方法中使用了第三方的代碼,比如是EJB或者是數(shù)據(jù)庫連接,那么我們在測試這個方法時難道好一定要有EJB容器或者真是的數(shù)據(jù)庫嗎?
    使用了MockingBird 就OK了!
                      private int getValue(){
                     
                       thirdPart x =
    Global.getThirdPart();
                       Connection connecton  = x.getConnection();
                       return connection.getValue("test");

                     }

    對于Global.getThirdPart() 我們可以Mock一個thirdPart 而不是實際的對象,同理 Connection也是。首先我們創(chuàng)建兩個Mock對象。
            
            thirdPart x =MockingBird.getProxyObject(thirdPart.class);
             Connection connection =MockingBird.getProxyObject(Connection .class);
                   //       進(jìn)入錄制模式
             
    MockingBird.enterRecondingMode();
               //Mock
    Global.getThirdPart(); 方法
            Mockingbird.setReturnValue(Global.getThirdPart(),x);
             //Mock x.getConnection(); 方法
       Mockingbird.setReturnValue(x.getConnection(),connection );
             //Mock connection.getValue();  使之返回為4
             Mockingbird.setReturnValue(,connection.getValue("test") ,4);
            進(jìn)入測試模式
            MockingBird.enterTestMode()
           必須先進(jìn)行錄制狀態(tài)進(jìn)行錄制,然后才能就是測試狀態(tài)使用之前設(shè)置的錄制值。
       然后對于這個方法的測試將很簡單 只要調(diào)用給方法 看是不是返回4就可以了,完全與環(huán)境無關(guān)。簡單吧!!



        
        


    posted on 2007-12-17 22:10 advincenting 閱讀(2311) 評論(1)  編輯  收藏

    評論

    # re: 17屆jolt大獎中的自動測試工具agitarOne 初體驗之-MockingBird的使用 2007-12-17 22:12 vinent

    可以試試Agitar提供免費(fèi)的自動化測試工具
    http://www.junitfactory.com/  回復(fù)  更多評論   


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    公告

    Locations of visitors to this pageBlogJava
  • 首頁
  • 新隨筆
  • 聯(lián)系
  • 聚合
  • 管理
  • <2007年12月>
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    統(tǒng)計

    常用鏈接

    留言簿(13)

    隨筆分類(71)

    隨筆檔案(179)

    文章檔案(13)

    新聞分類

    IT人的英語學(xué)習(xí)網(wǎng)站

    JAVA站點(diǎn)

    優(yōu)秀個人博客鏈接

    官網(wǎng)學(xué)習(xí)站點(diǎn)

    生活工作站點(diǎn)

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲av片一区二区三区| 久久这里只精品99re免费| free哆啪啪免费永久| 亚洲国产人成中文幕一级二级| 亚洲自偷自拍另类图片二区| 九九免费精品视频在这里| 毛片免费视频播放| 亚洲综合久久综合激情久久| 日韩在线一区二区三区免费视频 | 亚洲av成人片在线观看| 91人人区免费区人人| 国产成人亚洲精品影院| MM1313亚洲国产精品| 免费电视剧在线观看| 久久亚洲精精品中文字幕| 国产一级在线免费观看| 亚洲Av无码国产情品久久 | 国产精品成人免费观看| 国产小视频在线免费| 亚洲日韩国产二区无码| aa级一级天堂片免费观看| 亚洲自偷精品视频自拍| 久久综合九色综合97免费下载| 国产亚洲成人久久| 伊人久久国产免费观看视频| 国产亚洲精品免费| 成人a毛片视频免费看| 亚洲&#228;v永久无码精品天堂久久 | 免费人成在线观看视频高潮 | 亚洲国产成人无码AV在线影院| 国产精品久久久久免费a∨| 亚洲网站视频在线观看| 91制片厂制作传媒免费版樱花| 亚洲欧洲日韩国产综合在线二区| 国产成人AV免费观看| 亚洲成av人在线视| 久久久久免费精品国产小说| 亚洲成A∨人片在线观看不卡| 国产一区二区免费视频| 亚洲va国产va天堂va久久| 无码人妻久久一区二区三区免费|