软件测试(三)—— 参数化测试用例(Nextday.java)

时间:2023-03-09 00:21:18
软件测试(三)—— 参数化测试用例(Nextday.java)
import static org.junit.Assert.*;

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Collection; import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters; //这个不可少
@RunWith(value = Parameterized.class)
public class NextdayTest { private Date expected; private Date value; @Parameters
public static Collection<Object[]> getTestParameters() { //有效等价类
Date d1 = new Date(5, 14, 2014);
Date d2 = new Date(5, 13, 2014); //为负日期
// Date d3 = new Date(5, 0, 2014);
// Date d4 = new Date(5, -1, 2014); //为零日期
// Date d5 = new Date(5, 1, 2014);
// Date d6 = new Date(5, 0, 2014); //31号
Date d7 = new Date(8, 31, 2015);
Date d8 = new Date(8, 30, 2015); Date d9 = new Date(7, 31, 2014);
Date d10 = new Date(7, 30, 2014); Date d11 = new Date(7, 1, 2013);
Date d12 = new Date(6, 30, 2013); //闰年
Date d13 = new Date(3, 1, 2004);
Date d14 = new Date(2, 29, 2004); Date d15 = new Date(2, 29, 2004);
Date d16 = new Date(2, 28, 2004); //400年是闰年
Date d17 = new Date(3, 1, 2000);
Date d18 = new Date(2, 29, 2000); Date d19 = new Date(3, 1, 2013);
Date d20 = new Date(2, 28, 2013); //被4整除,不被100整除
Date d23 = new Date(3, 1, 2100);
Date d24 = new Date(2, 28, 2100); //到第二年
Date d21 = new Date(1, 1, 2014);
Date d22 = new Date(12, 31, 2013); //下一个月
Date d25 = new Date(1, 31, 2013);
Date d26 = new Date(1, 30, 2013); Date d27 = new Date(2, 1, 2013);
Date d28 = new Date(1, 31, 2013); Date d29 = new Date(4, 1, 2014);
Date d30 = new Date(3, 31, 2014); Date d31 = new Date(5, 1, 2014);
Date d32 = new Date(4, 30, 2014); Date d33 = new Date(6, 1, 2014);
Date d34 = new Date(5, 31, 2014); Date d35 = new Date(7, 1, 2014);
Date d36 = new Date(6, 30, 2014); //左为 expected, 右为 value
Object[][] date = new Object[][] {
{d1, d2},
// {d3, d4},
// {d5, d6},
{d7, d8},
{d9, d10},
{d11, d12},
{d13, d14},
{d15, d16},
{d17, d18},
{d19, d20},
{d21, d22},
{d23, d24},
{d25, d26},
{d27, d28},
{d29, d30},
{d31, d32},
{d33, d34},
{d35, d36}
};
return Arrays.asList(date); } //构造函数不要省略!
public NextdayTest(Date expected, Date value) {
super();
this.expected = expected;
this.value = value;
} @Test
public void testNextDay() { assertEquals(expected, Nextday.nextDay(value)); } }