熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

探索JUnit 4.4 新特性[8]

2013-11-23 20:48:00  來源: Java開源技術 

  清單 理論機制舉例

import static orghamcrestMatchers*; //指定接下來要使用的Matcher匹配符
import static orgjunitAssume*; //指定需要使用假設assume*來輔助理論Theory
import static orgjunitAssert*; //指定需要使用斷言assert*來判斷測試是否通過

import orgjunitexperimentaltheoriesDataPoint; //需要使用注釋@DataPoint來指定數據集
import orgjunitexperimentaltheoriesTheories; //接下來@RunWith要指定Theoriesclass
import orgjunitexperimentaltheoriesTheory; //注釋@Theory指定理論的測試函數
import orgjunitrunnerRunWith; //需要使用@RunWith指定接下來運行測試的類

import orgjunitTest;

//注意必須得使用@RunWith指定Theoriesclass
@RunWith(Theoriesclass)
public class TheoryTest {

    //利用注釋@DataPoint來指定一組數據集這些數據集中的數據用來證明或反駁接下來定義的Theory理論
    //testNames和testNames這兩個理論Theory測試函數的參數都是String所以Junit會將這
    //@DataPoint定義的String進行兩兩組合統統一一傳入到testNames和testNames所以參數名year
    //和name是不起任何作用的同樣有機會會傳給參數nameWorks也同樣有機會傳給參數year
    @DataPoint public static String YEAR_ = ;
    @DataPoint public static String YEAR_ = ;
    @DataPoint public static String NAME = developer;
    @DataPoint public static String NAME = Works;
    @DataPoint public static String NAME = developerWorks;

    //注意使用@Theory來指定測試函數而不是@Test
    @Theory
    public void testNames( String year String name ) {
        assumeThat( year is() ); //year必須是否則跳過該測試函數
        Systemoutprintln( year + + name );
        assertThat( year is() ); //這裡的斷言語句沒有實際意義這裡舉此例只是為了不中斷測試
    }

    //注意使用@Theory來指定測試函數而不是@Test
    @Theory
    public void testNames( String year String name ) {
        assumeThat(year is()); //year必須是否則跳過該測試函數
        //name必須既不是也不是否則跳過該測試函數
        assumeThat(name allOf( not(is()) not(is())));
        Systemoutprintln( year + + name );
        assertThat( year is() ); //這裡的斷言語句沒有實際意義這裡舉此例只是為了不中斷測試
    }

  結果輸出:

  第一個Theory打印出



developer
Works
developerWorks

  第二個Theory打印出

developer
Works
developerWorks

  結束語

  本文通過詳細深入的理論介紹和簡單易懂的實例全面剖析了 JUnit 的三個新特性

  提供了新的斷言語法(assertion syntax)——assertThat提供了假設機制(assumptions)

  提供了理論機制(Theories)

  相信讀者看完後一定會對 JUnit 有著非常深入的了解並可以輕松將其運用到自己的開發工程中

[]  []  []  []  []  []  []  []  


From:http://tw.wingwit.com/Article/program/Java/ky/201311/29104.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.