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

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

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

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

    單元測試假成功和假失敗的避免方法

    發布: 2009-4-09 11:30 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 16次 | 進入軟件測試論壇討論

    領測軟件測試網

    1 基本信息

            摘要:描述了單元測試要避免的幾個問題,并給出幾個最佳實踐建議。

    2 假成功的單元測試

    1. 問題描述:

            在testXXX方法中,看到有這樣的測試代碼:3. 解決方法:

    public void testInvoke(){
    try{

    assertEquals(a,b);
    }
    catch(Exception e){

    }
    }

    2. 問題分析:

            如果運行過程中沒有出現異常,整個流程不會有任何問題,JUnit也認為整個測試正常通過。

            但是一旦try中的某段代碼運行出錯,我們會發現由于在assertEquals被調用之前就已經跳到catch中,所以assertEquals并沒有被執行,而catch及之后的代碼中并沒有相應的assertEquals語句,因此JUnit認為這個testXXX方法對應的測試用例正常通過,我們被結果欺騙了。

     

            將assertEquals語句移道try…catch之外,變成如下的代碼樣式:


    public void testInvoke(){
    Object a;
    Object b;
    try{

    // assertEquals(a,b);
    }
    catch(Exception e){

    }
    assertEquals(a,b);
    }

    3  假失敗的單元測試

            有的時候被測試方法在申明的時候有throws語句,那么單元測試代碼應該小心處理這個問題.

            如果測試方法直接throws被測試方法所扔出的異常,則在被測試方法扔出這個異常的時候,該單元測試被認為是失敗;但是作為被測試方法來講,扔出該異?赡苁钦5奶幚磉壿,而不能被認定是代碼有錯誤. 稱這種情況為"假失敗"的單元測試.

    4 最佳實踐

            單元測試最好不要有try/catch這些內容,這些內容應該是正式代碼中處理的。

            單元測試只要在故意測試異常時才應該用到try/catch,如需要在某個環境下是否拋出某個異常;而其它情況try/catch應該避免使用。

    延伸閱讀

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

    TAG: 單元 失敗


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

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

    老湿亚洲永久精品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>