интеграционные тесты и изменения пользовательского интерфейса - PullRequest
1 голос
/ 20 марта 2012

Наше веб-приложение имеет множество интеграционных тестов. Как бороться с изменениями в структуре пользовательского интерфейса страницы? Все тесты основаны на xpath с идентификатором и определенным именем тега (что действительно плохо).

Группа идентификаторов - это контракт, но как веб-разработчик может легко изменять страницы без сбоев тестов?

Ответы [ 2 ]

2 голосов
/ 20 марта 2012

Как вы заметили, выражения XPath довольно хрупки, так как даже небольшие изменения в структуре страницы могут их сломать.Я бы не рекомендовал использовать их в тестах как способ найти определенный элемент.

Можно ли переписать ваши тесты для поиска элементов, используя только их уникальные идентификаторы, а не выражения XPath?Идентификаторы довольно легко сохранить при изменении страницы.

В качестве альтернативы - если по какой-то причине вам необходимо часто менять идентификаторы элементов - возможно, вы могли бы добавить другой атрибут к тегам HTML, содержащим уникальный и неизменный «идентификатор тестирования»Примерно так:

<a href="mylink.html" id="idThatWillBeChanged" test-id="myLink">My link</a>

Затем вы можете найти элементы, используя этот идентификатор теста.К сожалению, добавление такого атрибута будет означать, что ваши страницы перестанут проверяться как допустимый HTML, и некоторые IDE пометят это как ошибку.

0 голосов
/ 20 марта 2012

Насколько я понимаю, корень проблемы в том, что вы должны отражать изменения DOM во всех тестовых случаях.Это нарушение DRY может быть устранено добавлением еще одного слоя абстракции с шаблоном PageObject .В этом случае при изменении элемента вы обновите его XPath только в одном классе.

См. Также:

...