Игнорировать все элементы, отсутствующие в тестовом 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где узел отсутствует на тестовой стороне.

Другие вопросы по тегам