У меня есть этот метод на Java, где я пытаюсь сравнить 2 файла csv с помощью assertJ, и этот метод выглядит следующим образом. Я использую поля игнорирования с функцией Regex, как показано ниже. Регулярное выражение предназначено для игнорирования значений для coulmns, в которых есть временная метка. Я вижу, что эти столбцы все еще сравниваются, и утверждение не выполняется. Может ли кто-нибудь сообщить мне, что я здесь делаю не так?
public class 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: при рекурсивном сравнении поля за полем, но обнаружил следующую разницу:
Фактические и ожидаемые объекты верхнего уровня различаются:
- фактическое значение: 2020-11-04 13:31:51
- ожидаемое значение: 2020-11-05 13:31:52