gpt4 book ai didi

java - JUnitParamsRunner 与输入文件 - 字符串参数问题

转载 作者:太空宇宙 更新时间:2023-11-04 13:52:11 26 4
gpt4 key购买 nike

我想将 JUnit 测试参数移至单独的 CSV 文件。我这样使用 JUnitParamsRunner:

@RunWith(JUnitParamsRunner.class)
public class TestClass {
...
@Test
@FileParameters("src/test/resources/input.csv")
public void testMethod(int assertResult, String inputMark) throws InterruptedException {
....

我的 CSV 文件是这样的

2,"xxx"
2,"xxx"
2,"xxxx,xxx-1"
4,"xxxx xxxxx-xx"

当我运行测试参数“xxxx,xxx-1”时,由于参数数量错误(我认为是因为里面的逗号),出现了java错误。在我的场景中,如何在 CVS 文件中传递带有特殊符号的字符串参数?

最佳答案

提供自定义映射器来解析 CSV 数据:

@RunWith(JUnitParamsRunner.class)
public class TestClass {

@Test
@FileParameters(value = "src/test/resources/input.csv", mapper = CustomMapper.class)
public void testMethod(int assertResult, String inputMark) {}

public static class CustomMapper extends IdentityMapper {
@Override
public Object[] map(Reader reader) {
Object[] map = super.map(reader);
List<Object> result = new LinkedList<Object>();
for (Object lineObj : map) {
String line = lineObj.toString();
int index = line.indexOf(",");
String arg1 = line.substring(0, index);
String arg2 = line.substring(index + 1, line.length());
result.add(new Object[] {arg1, arg2});
}
return result.toArray();
}
}
}

对于更复杂的解决方案 - 您应该在 CustomMapper 中使用正则表达式来正确解析 CSV 数据。

关于java - JUnitParamsRunner 与输入文件 - 字符串参数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30187945/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com