package test.JUnitdemo;import static org.junit.Assert.assertEquals;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;//运行参数化测试//使用parameterized的测试运行器运行测试类/** * 注意事项: * 1、测试类必须由@RunWith(指定测试运行器类)修饰,参数必须是Parameterized.class(指参数化测试) * 2、必须声明测试中所使用的变量 * 3、定义参数设置方法,目的是对运行测试的变量初始化 * 3.1必须使用@Parameters注释 * 3.2该方法的必须是public static Collection * @author Masker * *//** * 参数化运行过程: * 1、JUnit使用数组的第一个元素调用构造函数 * 2、接着调用测试方法 * 3、JUnit会按Collection中的元素重复以上过程 * @author Masker * */@RunWith(value = Parameterized.class)public class ParameterizedTest { //声明测试中使用的变量 private double expected; private double valueOne; private double valueTow; //设置参数数据的方法 @Parameters public static Collection<Integer[]> getTestParameters(){ return Arrays.asList(new Integer[][] { {2,1,1}, {3,2,1}, {4,3,1}, }); } //为测试接收参数,必须唯一的公共构造函数 public ParameterizedTest(double expected, double valueOne, double valueTwo) { this.expected = expected; this.valueOne = valueOne; this.valueTow = valueTwo; } @Test public void sum() { Calculator cal = new Calculator(); assertEquals(expected, cal.add(valueOne, valueTow),0); }}