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