Selenium 提供未知数量的参数作为JUnit CsvSource

Selenium 提供未知数量的参数作为JUnit CsvSource,selenium,junit,automated-tests,junit5,Selenium,Junit,Automated Tests,Junit5,我正在为一个购物车模块进行测试自动化,我正在努力用JUnit@CsvSource以“好的方式”提供测试数据 到目前为止,我的测试是这样的 @ParameteredTest(name=“正确计算各种类型商品的购物车总数量和价格”) @CSV源({ “球,3,眼镜,5,电缆,15,显示器,25,立方体,11”, 照相机、10、球、33、枕头、1、笔记本、19、耳机、2 }) 对于不同类型的产品(字符串名称1、字符串数量1、, 字符串名称2,字符串数量2, 字符串名称3,字符串数量3, 字符串名称4,

我正在为一个购物车模块进行测试自动化,我正在努力用JUnit
@CsvSource
以“好的方式”提供测试数据

到目前为止,我的测试是这样的

@ParameteredTest(name=“正确计算各种类型商品的购物车总数量和价格”)
@CSV源({
“球,3,眼镜,5,电缆,15,显示器,25,立方体,11”,
照相机、10、球、33、枕头、1、笔记本、19、耳机、2
})
对于不同类型的产品(字符串名称1、字符串数量1、,
字符串名称2,字符串数量2,
字符串名称3,字符串数量3,
字符串名称4,字符串数量4,
字符串名称5,字符串数量5){
Task1页面=新Task1页面(驱动程序);
task1Page.open();
列表名称=List.of(名称1、名称2、名称3、名称4、名称5);
清单金额=清单金额(金额1、金额2、金额3、金额4、金额5);
Task1页面。添加列表中的篮子(名称、金额);
任务1页面。验证篮子中项目的数量(名称、金额);
任务1页面。验证从列表中列出的总价格(名称、金额);
...
}

在我当前的实现中,我仅限于5种项目类型。我还想包括更多产品的案例。有什么好方法可以处理这种情况吗?

您可能希望使用
@MethodSource
构建更复杂的测试数据:

导入静态java.util.Arrays.asList;
导入java.util.List;
导入java.util.stream.stream;
导入org.junit.jupiter.params.ParameterizeTest;
导入org.junit.jupiter.params.provider.Arguments;
导入org.junit.jupiter.params.provider.MethodSource;
公共类MoreTestDataTest{
@参数化测试
@方法来源(“数据”)
公共无效测试(列出产品、列出金额){
// ...
}
私有静态流数据(){
回流(
(a、b、c、d、e、f)、asList(1、2、3、4、5、6)的参数,
参数(asList(“x”、“y”、“z”)、asList(7、8、9));
}
}