• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 軟件測試中有關Agitar 中Mockingbird的使用

    發表于:2009-06-08來源:作者:點擊數: 標簽:軟件測試MockingbirdAgitar
    為了提高 軟件測試 代碼的Coverage,僅僅靠AgitarOne來處理2K多行的方法,是肯本不夠的。我現在搞的那個方法覆蓋率才20%,不過比同事的10%好多了。不過都是測試異常的TestCase,一個正向的TestCase的沒有。只能硬著頭皮看人家生成的代碼來提高代碼Coverage,
    為了提高軟件測試代碼的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.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>