霍格沃兹测试开发学社
ceshiren.com
pom 引入
单参数注解支持以下类型的单参数数据的参数化
参数 | 参数的类型 |
shorts | short |
bytes | byte |
ints | int |
longs | long |
floats | float |
doubles | double |
chars | char |
booleans | boolean |
strings | java.lang.String |
classes | java.lang.Class |
问题: 很多场景并不会只有一个参数需要进行参数化的验证。
解决方案:使用多参数的参数化方式。
public class CsvParamDemoTest {
// @ParameterizedTest 注解指明为参数化测试用例
@ParameterizedTest
// @CsvSource 注解指定数据源为 csv 数据,csv默认分隔符为 ,
@CsvSource({"张三,3", "李四,15", "王五,8"})
void testParamCsv1(String name, Integer age) {
assertEquals(name.length(),2);
assertTrue(age > 2);
}
// @ParameterizedTest 注解指明为参数化测试用例
@ParameterizedTest
// @CsvSource 注解指定数据源为 csv 数据,delimiterString 指定数据的分割符
@CsvSource(value = {"张三|3", "李四|15", "王五|8"}, delimiterString = "|")
void testParamCsv2(String name, Integer age) {
assertEquals(name.length(), 2);
assertTrue(age > 2);
}
}
,
分隔的|
分隔的张三,3
李四,15
王五,8
张三|3
李四|15
王五|8
,
分隔的|
分隔的
public class CsvFileParamDemoTest {
// @ParameterizedTest 注解指明为参数化测试用例
@ParameterizedTest
// @CsvFileSource 注解指定数据源为 csv 数据,csv默认分隔符为 ,
@CsvFileSource(resources = "/data.csv")
void testParamCsvFile(String name, Integer age) {
assertEquals(name.length(), 2);
assertTrue(age > 2);
}
// @ParameterizedTest 注解指明为参数化测试用例
@ParameterizedTest
// @CsvFileSource 注解指定数据源为 csv 数据,delimiterString 指定数据的分割符
@CsvFileSource(resources = "/data1.csv", delimiterString = "|")
void testParamCsvFile2(String name, Integer age) {
assertEquals(name.length(), 2);
assertTrue(age > 2);
}
}