package com.zlp.test;
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import com.zlp.utils.Calculation;
@RunWith(Parameterized.class)
public class ParameterTest {
private static Calculation calc;
private int expceted;
private int input1;
private int input2;
@Before
public void init(){
calc = new Calculation();
}
@Parameters
public static Collection prepareData(){
Object[][] object = {{3,1,2},{4,2,2},{-5,-7,2},{0,-4,4}};
return Arrays.asList(object);
}
public ParameterTest(int expceted, int input1, int input2) {
this.expceted = expceted;
this.input1 = input1;
this.input2 = input2;
}
@Test
public void testAdd(){
assertEquals(this.expceted, calc.add(input1, input2));
}
}
注意点:
在类的声明处声明@RunWith(Parameterized.class)表示该类不使用默认的测试运行器,在提供的方法中要设置@Parameters方法来修饰
同时为各个参数赋值,最后编写测试类
以上示例测试能全部通过,如果改掉object的值如{4,1,2}将会出错。
所有的运行器都继承自org.junit.runner.Runner