我有一个简单的JUnit 5测试用例,可以比较两个列表。
JUnit未通过测试,但在查看IntelliJ似乎存在差异时的差异 - 请参阅图片。
我想念什么?
更新:
这是测试
@Test
@DisplayName("Comma separated ids over different lines")
public void commaSeparatedOverLines() throws IOException {
Path idFile = writeRequirementsFile("ID-234, ID-567" +
System.lineSeparator() + "ID-456");
List<String> list = new JiraLocalRequirementsReader().readRequirementsId(idFile.toString(), System.lineSeparator());
assertEquals(Arrays.asList("ID-234", "ID-567", "ID-456"), list);
}
和SUT
public class JiraLocalRequirementsReader {
public List<String> readRequirementsId(String file, String separator) throws IOException {
Path path = Paths.get(file);
List<String> strings = Files.readAllLines(path);
if (separator.equals(System.lineSeparator())) {
return trimResult(strings.stream());
}
return trimResult(strings.stream().flatMap(s -> Arrays.stream(s.split(separator))));
}
private List<String> trimResult(Stream<String> input) {
return input.map(String::trim).collect(Collectors.toList());
}
}
答案 0 :(得分:0)
我找到了罪魁祸首,我使用的分隔符是lineSeparator
,它没有拆分前两个ID(因此toString
也看起来是正确的)。我们的想法是使用,
,它可以正确地分割线条。
有了这个,测试是绿色的,没问题。
很抱歉打扰这个问题并开始糟糕的开始。