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

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
JUnit4概述(三)
作者:網絡轉載 發布時間:[ 2013/12/11 11:21:03 ] 推薦標簽:

為了簡化類似的測試,JUnit4提出了“參數化測試”的概念,只寫一個測試函數,把這若干種情況作為參數傳遞進去,一次性的完成測試。代碼如下:

import static org.junit.Assert.assertEquals;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.junit.runners.Parameterized;

import org.junit.runners.Parameterized.Parameters;

import java.util.Arrays;

import java.util.Collection;

 

@RunWith(Parameterized.class)

public class SquareTest ...{

    private static Calculator calculator = new Calculator();

private int param;

private int result;   

 

@Parameters  

public static Collection data() ...{

        return Arrays.asList(new Object[][]...{

                ...{2, 4},

                ...{0, 0},

                ...{-3, 9},

        });

}

//構造函數,對變量進行初始化

public SquareTest(int param, int result) ...{

        this.param = param;
            this.result = result;

}

@Test  

public void square() ...{

        calculator.square(param);

        assertEquals(result, calculator.getResult());

    }

 }

下面我們對上述代碼進行分析。首先,你要為這種測試專門生成一個新的類,而不能與其他測試共用同一個類,此例中我們定義了一個SquareTest類。然后,你要為這個類指定一個Runner,而不能使用默認的Runner了,因為特殊的功能要用特殊的Runner嘛。@RunWith(Parameterized.class)這條語句是為這個類指定了一個ParameterizedRunner。第二步,定義一個待測試的類,并且定義兩個變量,一個用于存放參數,一個用于存放期待的結果。接下來,定義測試數據的集合,也是上述的data()方法,該方法可以任意命名,但是必須使用@Parameters標注進行修飾。這個方法的框架不予解釋了,大家只需要注意其中的數據,是一個二維數組,數據兩兩一組,每組中的這兩個數據,一個是參數,一個是你預期的結果。比如我們的第一組{2, 4},2是參數,4是預期的結果。這兩個數據的順序無所謂,誰前誰后都可以。之后是構造函數,其功能是對先前定義的兩個參數進行初始化。在這里你可要注意一下參數的順序了,要和上面的數據集合的順序保持一致。如果前面的順序是{參數,期待的結果},那么你構造函數的順序也要是“構造函數(參數, 期待的結果)”,反之亦然。后是寫一個簡單的測試例了,和前面介紹過的寫法完全一樣,在此不多說。

六、 打包測試。

通過前面的介紹我們可以感覺到,在一個項目中,只寫一個測試類是不可能的,我們會寫出很多很多個測試類?墒沁@些測試類必須一個一個的執行,也是比較麻煩的事情。鑒于此,JUnit為我們提供了打包測試的功能,將所有需要運行的測試類集中起來,一次性的運行完畢,大大的方便了我們的測試工作。具體代碼如下:

import org.junit.runner.RunWith;

import org.junit.runners.Suite;

@RunWith(Suite.class)

@Suite.SuiteClasses(...{CalculatorTest.class, SquareTest.class})

public class AllCalculatorTests ...{}

大家可以看到,這個功能也需要使用一個特殊的Runner,因此我們需要向@RunWith標注傳遞一個參數Suite.class。同時,我們還需要另外一個標注@Suite.SuiteClasses,來表明這個類是一個打包測試類。我們把需要打包的類作為參數傳遞給該標注可以了。有了這兩個標注之后,已經完整的表達了所有的含義,因此下面的類已經無關緊要,隨便起一個類名,內容全部為空既可。

相關鏈接:
上一頁123456下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 你懂的免费在线视频 | 日韩中文字幕在线视频 | 天天摸天天干 | 亚洲黄色免费在线观看 | 国产偷国产偷在线高清 | 成年视频网站免费观看 | 看黄视频网站 | 欧美一级黄色录相 | 伊人久久精品成人网 | 国产视频日韩 | 日韩在线第一区 | 欧美一级日韩一级 | 日韩欧美一区二区不卡看片 | 欧美写真视频一区 | 免费观看亚洲视频 | 成人特黄午夜性a一级毛片 成人网18免费软件 成人网免费 | 大柠檬导航香蕉导航巨人导航 | 亚洲精品午夜国产va久久成人 | 亚洲精品国产福利片 | 国产视频一二 | 丝袜美女在线播放 | 欧美丝袜自拍 | 午夜网站入口 | 一级特黄aa大片免费 | 日本午夜影视 | 最新91| 亚洲国产聚色窝 | 香蕉大黄香蕉在线观看 | 欧产日产国产精品专区 | 曰本不卡视频 | 五月天在线婷婷 | 一区二区视频在线 | 最近2019中文字幕免费看最新 | 午夜视频福利在线观看 | 亚洲福利天堂网福利在线观看 | 99在线观看视频免费精品9 | 一级寡妇乱色毛片全场免费 | 黄色三级视频 | 亚州毛色毛片免费观看 | 激情亚州 | 成人羞羞视频在线观看免费 |