junit4
https://github.com/junit-team/junit4/wiki/Parameterized-tests
public class Add{
public int addFun(int a,int b){
return a+b;
}
}
@RunWith(Parameterized.class)
public class AddTest{
private int test_a;
private int test_b;
private int test_exp;
// 通过构造函数和参数方法中的数据值来构造每个测试例子
public AddTest(int a,int b,int exp){
test_a=a;
test_b=b;
test_exp=exp;
}
/*可以采用@Paramter的方式直接将数据注入字段
即上述代码可换成:
@Paramter
public int test_a;
@Paramter(1)
public int test_b;
@Paramter(2)
public int test_exp;*/
@Parameters
public static Collection data() {
return (Collection) Arrays.asList(new Object[][]{ {2, 4, 6},{0, 4,4},{-3, 9,6}, });
}
Add testObject;
@Before
public void setUp() {
testObject = new Add();
}
@test
public void testaddFun(){
int real=testObject.addFun(test_a,test_b);
Assert.assertEquals(real,test_exp);
}
junit5
@ParameterizedTest
@CsvSource({"1,2,3","2,3,5","1,1,2"})
void testAdd(int first,int second,int exp) {
int actl=object.add(first, second);
assertEquals(actl,exp);
}
https://junit.org/junit5/docs/current/user-guide/#writing-tests-parameterized-tests