java

位置:IT落伍者 >> java >> 浏览文章

探索JUnit 4.4 新特性[8]


发布日期:2024年04月14日
 
探索JUnit 4.4 新特性[8]

清单 理论机制举例

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 有着非常深入的了解并可以轻松将其运用到自己的开发工程中

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

               

上一篇:探索JUnit 4.4 新特性[1]

下一篇:探索JUnit 4.4 新特性[7]