我在Java中有这个方法,我试图使用assertJ比较2个csv文件,方法如下。我正在使用带有 Regex 函数的 ignorefields,如下所示。正则表达式用于忽略其中包含时间戳的列的值。我看到这些列仍在比较中并且断言失败。谁能让我知道我在这里做错了什么?
公共类 RCSV {
public static void main(String[] args) throws IOException, CsvException {
// TODO Auto-generated method stub
try {
CSVReader reader1 = new CSVReader(new FileReader("file1.csv"));
List<String[]> Entries1 = reader1.readAll();
System.out.println(Entries1);
CSVReader reader2 = new CSVReader(new FileReader("file2.csv"));
List<String[]> Entries2 = reader2.readAll();
assertThat(Entries1).usingRecursiveComparison().ignoringFieldsMatchingRegexes("[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]")
.isEqualTo(Entries2);
} catch (AssertionError e) {
e.printStackTrace();
}
}
}
这是我在控制台中看到的错误:java.lang.AssertionError: when recursively compare field by field,但发现以下差异:
顶级实际对象和预期对象不同:
- 实际值:“2020-11-04 13:31:51”
- 预期值:“2020-11-05 13:31:52”