-
参数化关键字@ParameterizedTest 代替@Test
- 参数化的Value来源是method @MethodSource(“dataProviderMethodName”)
-
形参个数=1时候,直接用流Stream返回数据:
//形式参数个数==1
static Stream<String> dataProvider1(){ //Stream中的泛型,必须和引用测试方法中的形式参数类型一致
return Stream.of("赫敏","罗恩");
}
@ParameterizedTest
@MethodSource("dataProvider1") //methodSource定义参数所在方法名字
public void functionMethod1(String name){
System.out.println("name: "+name);
}
- 形参个数>1时候,用junnit推荐的Arguments返回参数
//形式参数个数>=2
static Stream<Arguments> dataProvider2(){ //Stream中的泛型,必须和引用测试方法中的形式参数类型一致
return Stream.of(
Arguments.arguments("罗恩",10),
Arguments.arguments("赫敏",11),
Arguments.arguments("Harry",11)
);
}
public void myFunction1(String name, int age) {
System.out.println("name: "+name);
assertEquals(name.length(), 2);
System.out.println("age: "+age);
assertTrue(age>2);
}
@ParameterizedTest
@MethodSource("dataProvider2")
public void methodSourceDemo(String name, int age){
myFunction1(name, age);
}