JUnit 5 比较失败,尽管 IntelliJ 合同

JUnit 5 comparison fails, though IntelliJ contracts

我有一个比较两个列表的简单 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());
  }
}

我找到了罪魁祸首,我使用的分隔符是 lineSeparator,它没有拆分前两个 id(因此 toString 看起来也是正确的)。这个想法是使用 ,,它可以正确地分割线。

至此,测试通过,测试成功。

抱歉打扰了,问题开头不好。