Junit4 - 参数初始化

今天的测试作业是使用Junit4对代码进行测试
在没有使用参数初始化之前,创了13个test,太冗杂。
下面来说说参数初始化。
以下是代码:

public class MyCalendar2 {
	public int getNumberOfDaysInMonth(int year, int month) {
	    if (month == 1 || month == 3 || month == 6 || month == 7 ||
	      month == 8 || month == 10 )
	      return 31;
	    if (month == 4 || month == 5 || month == 9 || month == 11)
	      return 30;
	    if (month == 2) return  28;
	    return 0; // If month is incorrect
	  }
}
@RunWith(Parameterized.class)
public class MyCalendar2Test {

	private static MyCalendar2 a = new MyCalendar2();
	
	private int year;
	private int month;
	private int result;
	
	@Parameters
	public static Collection testData(){
		return Arrays.asList(new Object[][] {
			{2007,1,31},{2007,2,28},
			{2007,3,31},{2007,4,30},
			{2007,5,31},{2007,6,30},
			{2007,7,31},{2007,8,31},
			{2007,9,30},{2007,10,31},
			{2007,11,30},{2007,12,31},
			{2008,2,29}
		});
	}
	
	public MyCalendar2Test(int year,int month,int result){
		this.year = year;
		this.month = month;
		this.result = result;
	}
	
	
	
	@Test
	public void testGetNumberOfDaysInMonth() {
		int act = a.getNumberOfDaysInMonth(year,month);
		System.out.println(act);
		assertEquals(result,act,0);
	}

}

第一次运行的时候出现:

Test class should have exactly one public zero-argument constructor
这句话的意思是需要有一个无参构造器

聪明的我立马get到了意思,加上一个无参构造器之后又报错:

Test class can only have one constructor
emmm...这句话的意思是测试类只能有一个构造器。
而我写了两个构造器,一个无参,一个带参。

我需要的是带参的构造器,因为要初始化数据啊。
后来发现,要使用带参构造器需要在类名前加注解:@RunWith(Parameterized.class)

你可能感兴趣的:(测试)