亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
單元測試利器JUnit
作者:網絡轉載 發布時間:[ 2013/3/29 14:59:08 ] 推薦標簽:

    參數化測試的編寫稍微有點麻煩(當然這是相對于 JUnit 中其它特性而言):

    為準備使用參數化測試的測試類指定特殊的運行器 org.junit.runners.Parameterized。
    為測試類聲明幾個變量,分別用于存放期望值和測試所用數據。
    為測試類聲明一個使用注解 org.junit.runners.Parameterized.Parameters 修飾的,返回值為 java.util.Collection 的公共靜態方法,并在此方法中初始化所有需要測試的參數對。
    為測試類聲明一個帶有參數的公共構造函數,并在其中為第二個環節中聲明的幾個變量賦值。
   編寫測試方法,使用定義的變量作為參數進行測試。
   我們按照這個標準,重新改造一番我們的單元測試代碼:

Java代碼 復制代碼

    package com.ai92.cooljunit;  
     
    import static org.junit.Assert.assertEquals;  
     
    import java.util.Arrays;  
    import java.util.Collection;  
     
    import org.junit.Test;  
    import org.junit.runner.RunWith;  
    import org.junit.runners.Parameterized;  
    import org.junit.runners.Parameterized.Parameters;  
     
    @RunWith(Parameterized.class)  
    public class TestWordDealUtilWithParam {  
     
            private String expected;  
          
            private String target;  
          
            @Parameters 
            public static Collection words(){  
                    return Arrays.asList(new Object[][]{  
                    {"employee_info", "employeeInfo"},      //測試一般的處理情況  
                    {null, null},                           //測試 null 時的處理情況  
                    {"", ""},                               //測試空字符串時的處理情況  
                    {"employee_info", "EmployeeInfo"},      //測試當首字母大寫時的情況  
                    {"employee_info_a", "employeeInfoA"},   //測試當尾字母為大寫時的情況  
                    {"employee_a_info", "employeeAInfo"}    //測試多個相連字母大寫時的情況  
                    });  
            }  
          
            /** 
            * 參數化測試必須的構造函數 
            * @param expected   期望的測試結果,對應參數集中的第一個參數 
            * @param target 測試數據,對應參數集中的第二個參數 
            */ 
            public TestWordDealUtilWithParam(String expected , String target){  
                this.expected = expected;  
                this.target = target;  
            }  
          
            /** 
            * 測試將 Java 對象名稱到數據庫名稱的轉換 
            */ 
            @Test public void wordFormat4DB(){  
                assertEquals(expected, WordDealUtil.wordFormat4DB(target));  
            }  
    } 

    很明顯,代碼瘦身了。在靜態方法 words 中,我們使用二維數組來構建測試所需要的參數列表,其中每個數組中的元素的放置順序并沒有什么要求,只要和構造函數中的順序保持一致可以了。現在如果再增加一種測試情況,只需要在靜態方法 words 中添加相應的數組即可,不再需要復制粘貼出一個新的方法出來了。

JUnit 和 Ant

    隨著項目的進展,項目的規模在不斷的膨脹,為了保證項目的質量,有計劃的執行全面的單元測試是非常有必要的。但單靠JUnit提供的測試套件很難勝任這項工作,因為項目中單元測試類的個數在不停的增加,測試套件卻無法動態的識別新加入的單元測試類,需要手動修改測試套件,這是一個很容易遺忘得步驟,稍有疏忽會影響全面單元測試的覆蓋率。

    當然解決的方法有多種多樣,其中將 JUnit 與構建利器 Ant 結合使用可以很簡單的解決這個問題。Ant —— 備受贊譽的 Java 構建工具。它憑借出色的易用性、平臺無關性以及對項目自動測試和自動部署的支持,成為眾多項目構建過程中不可或缺的獨立工具,并已經成為事實上的標準。Ant 內置了對 JUnit 的支持,它提供了兩個 Task:junit 和 junitreport,分別用于執行 JUnit 單元測試和生成測試結果報告。使用這兩個 Task 編寫構建腳本,可以很簡單的完成每次全面單元測試的任務。

    不過,在使用 Ant 運行 JUnit 之前,您需要稍作一些配置。打開 Eclipse 項界面,選擇 Ant -> Runtime 項(見圖7),將 JUnit 4.1 的 JAR 文件添加到 Classpath Tab 頁中的 Global Entries 設置項里。記得檢查一下 Ant Home Entries 設置項中的 Ant 版本是否在 1.7.0 之上,如果不是請替換為新版本的 Ant JAR 文件。

圖7 Ant Runtime 項

上一頁123456下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 午夜在线亚洲 | 肉动漫成人免费无遮羞 | 天天色天天操天天射 | 欧美另类tv | 亚洲社区在线观看 | 欧美一区二区在线观看 | 999热成人精品国产免 | 91在线 | 欧美 | 一个人看的www日本视频 | 日本三级日本三级人妇三级四 | 国产黄a三级三级看三级 | 亚洲成精品动漫久久精久 | 黄网站在线播放 | 国内精品视频成人一区二区 | 国产小视频在线免费观看 | 极品嫩模众筹福利写真视频 | 欧美末成年videos丨 | 美国一级大黄一片免费网站 | 一级黄色大片视频 | 亚洲 欧美 激情 另类 自拍 | 亚洲产国偷v产偷v自拍色戒 | 国产麻豆成人传媒免费观看 | 午夜剧场在线播放 | 男女做羞羞的网站视频 | 亚洲天堂久久久 | 国产黄色小视频网站 | 国产激情视频一区二区三区 | haose16在线永久免费 | 樱花aⅴ一区二区三区四区 影音先锋色69成人资源 | 日日拍夜夜嗷嗷叫视频 | 狠狠色婷婷丁香六月 | 日本人xxxⅹ18hd18hd | 成年人的天堂 | 国产青草视频免费观看97 | 色老头在线观看精品 | 国产精品国产三级国产an不卡 | 日韩黄色影片 | 成人9久久国产精品品 | 免费观看黄色毛片 | 91污污视频 | a视频在线观看 |