использование метода AssertJ с использованием метода ComparatorForType с наследованием

Я нашел метод assertj (3.5.2): usingComparatorForType и влюбился в него.

Но я хотел сравнить 2 даты XmlGregorianCalendar с погрешностью. И этот волшебный метод не работает для этого случая...

Вот почему:

  • XmlGregorianCalendar — это абстрактный класс.
  • Реальный тип объекта: XmlGregorianCalendarImpl
  • Этот класс (XmlGregorianCalendarImpl) является закрытым, поэтому я не могу создать специальный компаратор для этого класса.

У вас есть решение для этого случая? Есть ли другой метод, который отлично работает с наследованием?

Заранее спасибо.


person Nils Renaud    schedule 14.09.2016    source источник
comment
Хотя метод, похоже, не проверяет разные применимые компараторы, только для точного совпадения, com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl не private, это public в Java 8. В других версиях это может быть доступ package, и в этом случае вы все еще можете получить доступ к классу через отражение (Class.forName(...)) и создайте компаратор в том же пакете.   -  person Florian Schaetz    schedule 14.09.2016


Ответы (1)


Я согласен с тем, что usingComparatorForType должен поддерживать этот вариант использования: https://github.com/joel-costigliola/assertj-core/issues/758

person Joel Costigliola    schedule 16.09.2016
comment
Спасибо за подачу! - person Nils Renaud; 16.09.2016