Улучшить описание тестируемых объектов в Hamcrest - PullRequest
0 голосов
/ 04 марта 2020

Предположим, что мы тестируем и вынуждены использовать сторонние объекты (например, возвращаемые значения из некоторого фреймворка):

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 мне интересно, есть ли канонический способ решения этой проблемы при модульном тестировании?

...