Предположим, что мы тестируем и вынуждены использовать сторонние объекты (например, возвращаемые значения из некоторого фреймворка):
FrameWorkObject[] actual_array = ... ;
assertThat(
actual_array,
arrayContainingInAnyOrder(...)
));
Если наш тест не пройден, сообщение будет похоже на:
Expected: [ ... a nice message describing the matchers ... ] in any order
but: not matched: <FrameWorkObject really bad description@42fc25fc>
Как мы можем сделать описание FrameWorkObject
более полезным?
Мы могли бы создать новый класс, который украсит FrameWorkObject
лучшим toString
методом. Для многих каркасных объектов это огромное количество шаблонов. Что-то вроде lombok
может сделать это немного проще.
Мы также можем написать собственный сопоставитель - но, похоже, мы тогда потеряем возможность составлять богатый набор существующих сопоставителей.
I мне интересно, есть ли канонический способ решения этой проблемы при модульном тестировании?