前言

逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)

@CsvSource

支持 csv 的参数数据直接写在代码里面,下面的案例有 4 组数据,每组数据根据参数的顺序映射到方法的参数中。
4 组数据也意味着下面的方法会执行 4 次。

1
2
3
4
5
6
7
8
9
10
11
12
@ParameterizedTest(name = "{0} + {1} = {2}")
@CsvSource({
"0, 1, 1",
"1, 2, 3",
"49, 51, 100",
"1, 100, 101"
})
void add(int first, int second, int expectedResult) {
Calculator calculator = new Calculator();
assertEquals(expectedResult, calculator.add(first, second),
() -> first + " + " + second + " should equal " + expectedResult);
}

@CsvFileSource

支持从文本中读入 csv 格式的文件,进行参数化测试。

1
2
3
4
5
6
@ParameterizedTest
@CsvFileSource(resources = "/data/two-column.csv", numLinesToSkip = 1)
void testWithCsvFileSource(String country, int reference) {
assertNotNull(country);
assertNotEquals(0, reference);
}