Мы используем автоматизированные тесты для проверки работоспособности нашего веб-приложения. Чтобы сделать утверждения в тестовых примерах менее сложными и более гибкими, мы рассматриваем введение «TestIDs», то есть идентификаторов в разметке HTML, которые помогают тестовым кейсам находить и проверять элементы на странице. Кроме того, эти TestID позволили бы проводить более конкретные интеграционные тесты, которые в настоящее время невозможны из-за ограниченности данных на страницах.
Однако вот что заставляет нас колебаться:
- введение идентификатора теста означает изменение тестируемого для тестирования
- безопасность - мы будем раскрывать внутренние идентификаторы объектов домена и другую информацию, которая в противном случае не была бы видна на странице
- стандарты - в зависимости от того, как мы помещаем TestID в разметку, мы, скорее всего, нарушим предполагаемое семантическое использование элемента или атрибута (например, атрибутов 'id' или 'class', других элементов html, и др.)
- помехи - TestID могут помешать коду приложения
- производительность - TestID являются ненужной разметкой (для пользователя) и увеличивают размер страницы (имеет значение только на больших страницах)
Ограничение TestIDs для тестирования / размещения HTML не кажется хорошей идеей, потому что мы, очевидно, хотим протестировать код, который будет использоваться в рабочей среде, и не хотим, чтобы наша среда тестирования / подготовки работала по-другому. Фактически, мы в настоящее время запускаем части наших тестовых наборов против работающей системы после выпуска.
Как вы думаете, TestID - это хорошая идея, и если да, то как бы вы поместили их в разметку?
<Ч />
Некоторые примеры разметки, чтобы продемонстрировать, о чем я говорю:
<!-- this test id allows an integration test to verify that
the carrot 188271 is in fact green but exposes the id to the user -->
<tr id="testid-carrot-id-188271">
<td class="color">green</td>
<td class="size">doesn't matter</td>
</tr>