Представим, что у сравниваемых сущностей очень много свойств, хотя бы 5-10. В таком
случае, если пользоваться вариантом, рассказанным в предыдущем сообщении, и если тест не пройдет, придется потратить какое-то время, чтобы из
текста сообщения об ошибке определить, какие же свойства не совпали. А нам так бы хотелось сравнивать объекты, но чтобы в результате были показаны неожидаемые свойства сущности.
Есть библиотека, которая поможет нам в этом – Microsoft Test Api.
1. Если нас не устраивает сравнение классов по их публичным свойствам, и мы сами хотим настроить, какие свойства нужно сравнивать, а какие нет, нам нужно проделать следующее:
1. Если нас не устраивает сравнение классов по их публичным свойствам, и мы сами хотим настроить, какие свойства нужно сравнивать, а какие нет, нам нужно проделать следующее:
а).
Сначала создадим граф сравнения объектов
Здесь создается корневой узел – соответствует самой сущности,
которому в качестве дочерних узлов добавляются свойства – имя и электронная
почта. Т.е. сравнение объектов у нас будет идти по этим полям. Как мы видим,
сравнение достаточно гибко, можно указать, какие свойства включать для
сравнения, какие нет.
б). В класс ContactSummary
добавим метод Compare для сравнения
объектов, который возвращает коллекцию несовпадений свойств.
2. Если нас устраивает сравнение по публичным свойствам (как в большинстве случаев и бывает), то пункт а) можно пропустить, а в пункте б) вместе ContactSummaryGraphFactory использовать PublicPropertyObjectGraphFactory
В итоге получаем код теста:
И результат:
Комментариев нет:
Отправить комментарий