为参数化测试类用@RunWith注解指定特殊的运行器:Parameterized.class
本实例不需要借助其它框架,只依赖于junit4 框架。
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Test;
import static org.junit.Assert.*;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
/**
* @author Chris
*
*/
//1.指定Parameterized的运行器
@RunWith(Parameterized.class)
public class Junit4ParameterTest {
private SimpleDateFormat simpleDateFormat;
private String date;
private String deteformat;
private String expectedDate;
public Junit4ParameterTest(String date, String deteformat,
String expectedDate) {
super();
this.date = date;
this.deteformat = deteformat;
this.expectedDate = expectedDate;
}
//2.测试数据的提供者
@Parameters
@SuppressWarnings("rawtypes")
public static Collection getParamters(){
String[][] object={
{"2013-03-25 00:30:59","yyyyMMdd","20130325"},
{"2013-03-25 00:30:59","yyyy年MM月dd日","2013年03月25日"},
{"2013-03-25 00:30:59","HH时mm分ss秒","00时30分59秒"}
};
return Arrays.asList(object);
}
//3.测试日期格式化
@Test
public void testSimpleDateFormat() throws ParseException{
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d=df.parse(this.date);
simpleDateFormat=new SimpleDateFormat(this.deteformat);
String resut=simpleDateFormat.format(d);
assertEquals(this.expectedDate, resut);
}
}
在
1处为参数化测试类@RunWith注解指定特殊的运行器Parameterized.class 。在测试类中声明几个变量,分别用于存储日期字符串、日期格式串和期望的日期格式,并创建一个带参数的构造函数Junit4ParameterTest。在
2处创建一个静态测试数据提供者的方法getParameters(),其返回类型 为Collection,并且@Parameter注解以修饰。