Передовая практика E2E-тестирования с использованием атрибутов данных [закрыто]Jquery

Программирование на jquery
Ответить
Anonymous
 Передовая практика E2E-тестирования с использованием атрибутов данных [закрыто]

Сообщение Anonymous »

Мы используем Cypress для тестирования E2E и собираемся приступить к переходу от селекторов тегов и имен классов к атрибутам данных, чтобы сделать селекторы менее хрупкими.
Мой вопрос касается использования атрибутов данных. Cypress рекомендует использовать data-cy, data-test или data-testid.
Некоторые из самых сложных селекторов включают выбор строки и столбца. со стола. Пример:

Код: Выделить всё



Name
Email
Phone



Bob Fish
bob@fish.co
123-123-1234

Shaggy Rogers
shag@mysteryinc.com
509-123-1235



Теперь, если мы используем data-test, как рекомендовано, я бы сделал что-то вроде этого:

Код: Выделить всё

...


...
...
...
Теперь я могу найти td с определенным значением, например

Код: Выделить всё

  cy.contains('[data-test="users-table"] [data-test="name-col"]', user.name).should('be.visible')
или лучше:

Код: Выделить всё

  cy.get(`[data-test="users-table"] [data-test="user-id-${user.id}"]`).within(() => {
cy.get('[data-test="name-col"]').should('have.text', user.name)
cy.get('[data-test="email-col"]').should('have.text', user.email)
cy.get('[data-test="phone-col"]').should('have.text', user.phone)
})
Но в духе «семантической разметки» мне хочется сделать что-то вроде этого:

Код: Выделить всё

...


...
...
...

 ...

Это позволит мне не смешивать значения атрибутов data-test="[noun]-[value]", такие как user-id-1, в затраты на создание собственного согласованного набора атрибутов data- (

Код: Выделить всё

data-entity
, data-col и т. д.)
Итак, каков правильный, объективный и совсем не основанный на мнениях способ использования атрибутов данных? Потому что мы знаем, что при разработке программного обеспечения никогда не бывает компромиссов и есть только один правильный ответ.
Кроме того, я также начал читать о библиотеке тестирования Cypress, которая, похоже, может в некоторой степени помочь получение некоторых элементов семантически значимым способом (например, роль или метка) но все равно останутся тонны разметки, которая не будет покрыта, если, возможно, я не начну бросать role= во все, что кажется как грязный хак и, вероятно, противоречит ARIA или какому-то другому стандарту W3C.

Подробнее здесь: https://stackoverflow.com/questions/782 ... attributes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»