gpt4 book ai didi

java - 一个非常简单的例子中的 Junit5 csv 异常?

转载 作者:行者123 更新时间:2023-12-05 06:16:53 24 4
gpt4 key购买 nike

一个非常简单的代码,我无法理解这个错误。请帮助我!

“#”是否需要“\”?我试过了,但它不起作用!

或者,如果您对这个“charTest”方法或代码有更多有用的测试,请告诉我!

public class Stringtest {
String charTest(char first,char second){
System.out.println("first = " + first);
System.out.println("second = " + second);
String res="";
if(first=='#'||first=='*'){
if(isNumbers(second)){
res+="FILE_CHANGE";
return res;
}
}
res+="N";
if(!isNumbers(second)){
res+="M";
}
return res;
}
boolean isNumbers(char chars){
return Character.getNumericValue(chars)<=57 && Character.getNumericValue(chars)>=48;
}

@CsvSource(value = {
"*1",
"#0", // #0 throws org.junit.platform.commons.PreconditionViolationException: Line at index 1 contains invalid CSV: "#0"
"*w",
"#?", // why # can't be the firstchar?
"A1",
"cc"
})
@ParameterizedTest(name = "nums {index}==>firstchar:{0},sencondchar:{1}")
void test1(ArgumentsAccessor accessor){
System.out.println(charTest(accessor.getString(0).charAt(0),accessor.getString(0).charAt(1)));
}

这是前 5 名的异常堆栈

org.junit.platform.commons.PreconditionViolationException: Line at index 1 contains invalid CSV: "#0"

at org.junit.platform.commons.util.Preconditions.condition(Preconditions.java:296)
at org.junit.platform.commons.util.Preconditions.notNull(Preconditions.java:68)
at org.junit.jupiter.params.provider.CsvArgumentsProvider.parseLine(CsvArgumentsProvider.java:73)
at org.junit.jupiter.params.provider.CsvArgumentsProvider.lambda$provideArguments$0(CsvArgumentsProvider.jav

最佳答案

如果您查看CsvSourcevalue() 参数的文档 here ,您会看到 # 被解释为注释:

Any line beginning with a # symbol will be interpreted as a comment and will be ignored.

这就解释了为什么您没有得到预期的结果 - 尽管抛出错误与“将被忽略”不同 - 所以可能也存在错误。

如果可以,我建议完全避免使用 #。当然,根据您要处理的限制条件,这可能不是一种选择。

否则,您可能会通过类似以下方法获得更好的成功:

import org.junit.jupiter.params.provider.ValueSource;

...

@ParameterizedTest
@ValueSource(strings = {"11", "#2", "33"})
public void test2(String input) {
System.out.println(charTest(input.charAt(0), input.charAt(1)));
}

这将按预期处理前导 #:

first = #
second = 2

关于java - 一个非常简单的例子中的 Junit5 csv 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61910286/

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