我有一个带有许多变量的 jUnit4 测试用例。我从外部 csv 文件中读取了这些变量。我想要的是测试将为文件中的每一行输入参数运行一次。我认为这可以通过使用@Parametrized 来完成。
我不确定如何...
现在我有这样的东西......
@Test
...
readFromCSV(filename);
String carName = varFromFile[0];
selectItemFromList(fieldName, carName);
carName 是 csv 文件中的一条记录。我应该如何将其更改为从文件中获取 carName 的多个条目,并为每个条目运行一个测试?
编辑: 还有两件事。从文件读取看起来像这样
CSVReader reader = new CSVReader(new FileReader("yourfile.csv"), ';');
String [] nextValue;
String [] header = reader.readNext();
System.out.println(header[0] + " : " + header[1] + "etc...");
while ((nextValue = reader.readNext()) != null) {
System.out.println(nextValue[0] + " : " + nextValue[1] + "etc...");
}
参数化测试...
@RunWith(value = Parameterized.class)
public class testParametrized {
private final TestParameters parameters;
public static class TestParameters {
String recId;
String carName;
}
public testParametrized(TestParameters parameters) {
this.parameters = parameters;
System.out.println(parameters);
}
@Parameters
public static Collection<Object[]> data() throws Exception {
Object[][] data = new Object[][] {
{ new TestParameters() },
{ new TestParameters() }
};
return Arrays.asList(data);
}
@Test
public void pushTest() {
System.out.println("Parameters : " + parameters);
}
}
如何连接两者以进行从 csv 文件获取参数的测试?