【发布时间】:2018-02-19 08:56:58
【问题描述】:
我有一个比较两个列表的简单 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());
}
}
【问题讨论】:
-
我们错过的是实际测试。您正在检查 ArrayList 引用的相等性,而不是存储在其中的实际值,这将是我的第一个猜测。
-
你读过 assertArrayEquals 吗?
-
当您没有向我们展示您的测试代码时,我们很难告诉您您的测试代码出了什么问题。
标签: java intellij-idea junit junit5