一、用于测试的Calculator类
public class Calculator {
public double add(double number1,double number2){
return number1 + number2 ;
}
}
二、运行参数化测试 Parameterized(参数化)测试Calculator类
@RunWith(value=Parameterized.class) //要求 1
public class ParameterizedTest {
//要求 2
private double expected ;
private double valueOne ;
private double valueTwo ;
@Parameters //要求 3
public static Collection<Integer[]> getTestParameters() {
return Arrays.asList(new Integer[][]{
{2,1,1} ,//expected,valueOne, valueTwo ;
{3,2,1} ,
{4,3,1} ,
}) ;
}
//要求 4
public ParameterizedTest(double expected, double valueOne, double valueTwo){
this.expected = expected ;
this.valueOne = valueOne ;
this.valueTwo = valueTwo ;
}
@Test //要求 5
public void sum(){
Calculator calc = new Calculator() ;
assertEquals(expected,calc.add(valueOne, valueTwo),0) ;
}
}
Parameterized参数化的测试运行器允许使用不同的参数多次运行同一个测试。要使用Parameterized 的测试运行器来运行一个测试类,那就必须要满足一下5点要求。
1、测试类必须使用@RunWith注释,并且要将Parameterized类作为它的参数 ;
2、必须声明测试中所用的实例变量 ;
3、为测试类声明一个使用注解org.junit.runners.Parameterized.Parameters 修饰的,返回值为 java.util.Collection 的公共静态方法,并在此方法中初始化所有需要测试的参数对;
4、声明一个带有参数的公共构造函数,并在其中为要求2中声明的几个变量赋值 ;
5、编写测试方法,使用定义的变量作为参数进行测试 ;