При разработке тестов e2e почему атрибуты data- * предпочтительнее для выбора элемента, чем для простого идентификатора - PullRequest
0 голосов
/ 11 ноября 2019

Cypress и многие другие публикации о тестировании веб-приложений предлагают полагаться на атрибут данных, такой как data-cy или data-test-id, для определения местоположения элементов, а не на атрибут id.

Насколько я понимаю, по двум причинам:

  1. Современный способ повторного использования компонентов может привести к наличию нескольких компонентов одного типа и может привести к нескольким из этих идентификаторов на одной странице - ноэто также должно применяться к атрибутам «data-cy» или «data-test-id»
  2. Когда идентификаторы привязаны к CSS, существует тенденция изменять их чаще, тогда как атрибуты data- * могут быть меньшесклонны к изменениям

Может ли кто-нибудь пролить свет на эту рекомендацию?

Другая вещь, которую я рассматриваю, - это попросить моих разработчиков разместить атрибуты 'data-test * "натег div, который будет использовать компонент - таким образом, атрибут test фактически на один уровень выше атрибута id компонента и может пригодиться даже в случаях, когдаLe экземпляры одного и того же компонента используются. Но опять же, я не уверен, почему атрибут id для этого тега div плох при сравнении атрибута data-test *.

...