Проверьте, что результирующий документ хорошо сформирован Проверьте, что результирующий документ действителен Проверьте полученный документ.
Предположительно, вы создаете XML-документ из полезных данных, поэтому вам нужно убедиться, что у вас есть правильный охват входов для ваших тестов.Наиболее распространенные проблемы, которые я вижу, являются
- Некорректно спасся элементы
- Некорректно спасся атрибуты следующим
- Некорректно сбежавших имена элементов
- Некорректно сбежавших имена атрибутов
Так что, если вы еще не сделали поэтому вам нужно будет просмотреть спецификацию XML, чтобы узнать, что разрешено в каждом месте.
Насколько «проверка» должна произойти в каждом тесте, не сразу становится понятной. Полагаю, это будет зависеть от того, что подразделение находится в вашем проблемном пространстве. Кажется разумным, что каждый модульный тест проверяет правильность выражения одной части данных в XML. В этом случае я согласен с Робертом, что простая проверка того, что вы находите правильные данные в одном месте XPath, лучше всего.
Для более крупных автоматических тестов, где вы хотите проверить весь документ, то, что я нашел эффективным, - это иметь ожидаемые результаты, которые также являются документом, и пройти через него узел за узлом, используя выражения XPath для найти соответствующий узел в фактическом документе, а затем применить правильное сравнение данных, закодированных в этих двух узлах.
При таком подходе вы обычно захотите поймать все сбои сразу, а не прервать первый сбой, так что вам может быть сложно понять, как вы отслеживаете, где произошли несоответствия.
С немного дополнительной работой вы можете распознать определенные типы элементов как освобождаемые от теста (например, отметку времени) или подтвердить, что они являются указателями на эквивалентные узлы, или ... независимо от того, какая пользовательская проверка вам хотеть.
XMLUnit уже будут сравнивать XML-файлы и сосчитайте количество различий, если вы хотите ... – djangofan