Как сравнивать множество объектов в одном AssertEquals?

Я сравниваю объекты из веб приложения и базы данных, в ревью мне написали, что нужно сравнить всё в одном Assert, как это сделать?

 Assert.assertEquals(testForm.getTestName(), testTable.getName()) 
 Assert.assertEquals(testForm.getMethodName(), testTable.getMethodName());
 Assert.assertEquals(testForm.getStartTime(), testTable.getStartTime());
 Assert.assertEquals(testForm.getEndTime(), testTable.getEndTime());
 ....

Ответы (1 шт):

Автор решения: Анжелика
SoftAssert softAssert = new SoftAssert();
softAssert.assertEquals(testForm.getTestName(), testTable.getName());
softAssert.assertEquals(testForm.getMethodName(), testTable.getMethodName());
softAssert.assertEquals(testForm.getStartTime(), testTable.getStartTime());
softAssert.assertEquals(testForm.getEndTime(), testTable.getEndTime());
softAssert.assertAll();

Если хотите сравнить два одинаковых вида объекта (например, таблицы с одинаковыми названиями столбцов), то можно создать модель и переназначить у неё equals

Про создание моделей написано в статье по этой ссылке, но она на английском

По переназначению:

Прописываем в модели (назовём её Model) метод equals и сравниваем нужные элементы модели

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }

        Model model = (Model) o;
        return model.getName().equals(this.getName())//getTestName() придётся переименовать 
                                                     //или попробовать поэксперементировать
            && model.getMethodName().equals(this.getMethodName())
            && model.getStartTime().equals(this.getStartTime())
            && model.getEndTime().equals(this.getEndTime());
    }
→ Ссылка