У меня есть ~ 50 JSON массивов в виде массива моделей, подключаемых к юнит-тестам для сравнения результирующих конфигов. Каждый файл выглядит так: 0. json 1. json ... и т. Д.
[{model1}, {model2}, {model3}] Я пытаюсь запустить модульные тесты для сравнения результирующие конфиги и хотят запускать тесты таким образом, чтобы сам тест продолжал работать и собирать модели в случае сбоя утверждения и выводить его в файл json где-то.
Скажите, что модель2 не работает, я хочу чтобы собрать model2 в выходной файл. json в виде массива
До сих пор код выглядит следующим образом, даже если тест выполняется файл за файлом, это нормально, но сэкономит мне несколько дней усилий:
@Test
public void compareAWithB() throws Exception {
File lbJsonFile1 = new File("src/test/resources/iad_ad3/6.json");
compareAWithBHelper(lbJsonFile1);
}
public void compareAWithBHelper(File lbJsonFile) throws Exception {
Model[] dtos = new ObjectMapper().readValue(lbJsonFile, Model[].class);
for(Model dto : dtos) {
Model model = ModelConverter.apiToDao(dto);
String A = doSomeThing();
String B = doSomething2();
Assert.assertEquals(A,B);
//Required: if assert fails, collect the json object and continue
}
Я пытался использовать SoftAssertions в AssertJ, но странно, он не распечатывал все объекты json ИЛИ возможно, я не совсем правильно понял метод checkThat ().
Попробовал с помощью collectors.check, что не может заставить его работать надежно. Это производственная зона, поэтому у вас не должно быть места для ошибок, и вы хотите уменьшить ручные усилия.
Сделана еще одна попытка использовать коллекторы в качестве одной из публикаций в stackoverflow, не удалось заставить ее работать надежно
/*try {
collector.checkThat(A, CoreMatchers.equalTo(B));
} catch (AssertionError error) {
System.out.println(dto.toString());
throw new AssertionError(error.getMessage());
}*/
Может кто-нибудь помочь, пожалуйста?