AssertJ Как сравнить родительский объект с дочерним объектом, преобразованным в родительский экземплярJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 AssertJ Как сравнить родительский объект с дочерним объектом, преобразованным в родительский экземпляр

Сообщение Anonymous »

У меня возникла проблема со сравнением AssertJ для дочернего объекта, преобразованного к родительскому объекту.
Я просто хотел сравнить все свойства родительского объекта с объектом ожидаемого значения. p>
Пример

Код: Выделить всё

class Dog {
private String name;
public Dog(String name) {
this.name = name;
}
}

class Puddle {
private String color;
public Puddle(String name, String color) {
super(name);
this.color = color;
}
}

Dog constructParentOfChildObject() {
Puddle puddle = new Puddle("test", "blue");
return (Dog) puddle;
}

@Test
void testExpectedDogName() {
Dog actual = constructParentOfChildObject();

Dog expectedResult = new Dog("test");
assertThat(actual).usingRecursiveComparison().isEqualTo(expectedResult);
}
этот пример завершится неудачей по причине

Код: Выделить всё

Puddle can't be compared to Dog as Dog does not declare all Puddle fields, it lacks these: [color]
В настоящее время единственный ответ — использовать .ignoringFields(), и мне нужно добавить все дочерние поля, которые нужно игнорировать, но это не дает масштабируемый путь к UT. У меня также уже возникла идея, что я могу просто создать метод, который клонирует дочерний объект в новый родительский объект, имеющий такое же значение полей (но я не хочу, чтобы это было так, как создание метода только для выполнения UT) .
Мне нужен простой и лучший способ сделать это.

Подробнее здесь: https://stackoverflow.com/questions/790 ... the-parent
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»