Игнорировать все элементы, отсутствующие в тестовом XML, с помощью XMLUnit
В XMLUnit 2.x можно ли игнорировать все элементы в фактическом ("управляющем") XML, которых нет в моем тестовом ("ожидаемом") XML?
Пример:
Актуально:
<a>123</a>
<b>456</b>
<c>789</c>
Тестовое задание:
<b>456</b>
<c>xxx</c>
Я хотел бы обнаружить разницу в <c>
но игнорировать <a>
полностью пометить, потому что его нет в тестовом XML.
Идея состоит в том, что у меня есть большой XML, который я хочу сравнить, но мне интересен только поднабор элементов, и я не хочу давать XMLUnit все еще большой список имен элементов, которые можно игнорировать или не игнорировать.
1 ответ
Вы можете использовать свой собственный DifferenceEvaluator
и вернуться ComparisonResult.SIMILAR
(или даже EQUAL
) на все CHILD_NODELIST_LENGTH
а также CHILD_LOOKUP
сравнения.
Если вы хотите игнорировать только элементы, добавленные в ваш тестовый документ (а не игнорировать все элементы, отсутствующие на другой стороне независимо от направления), вам следует только понизить рейтинг CHILD_NODELIST_LENGTH
если контрольная длина больше тестовой длины и CHILD_LOOKUP
где узел отсутствует на тестовой стороне.