• 軟件測試技術
  • 軟件測試博客
  • 軟件測試視頻
  • 開源軟件測試技術
  • 軟件測試論壇
  • 軟件測試沙龍
  • 軟件測試資料下載
  • 軟件測試雜志
  • 軟件測試人才招聘
    暫時沒有公告

字號: | 推薦給好友 上一篇 | 下一篇

軟件測試中有關Agitar 中Mockingbird的使用

發布: 2009-6-08 14:49 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 36次 | 進入軟件測試論壇討論

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

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

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

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

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

        對于Global.getThirdPart() 我們可以Mock一個thirdPart 而不是實際的對象,同理 Connection也是。首先我們創建兩個Mock對象。
         
        thirdPart x =MockingBird.getProxyObject(thirdPart.class);
         Connection connection =MockingBird.getProxyObject(Connection .class);
               //       進入錄制模式
          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);
        進入測試模式 
        MockingBird.enterTestMode() 
        必須先進行錄制狀態進行錄制,然后才能就是測試狀態使用之前設置的錄制值

延伸閱讀

文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/

TAG: Agitar Mockingbird 軟件測試


關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97