Выбор ответа Junior Тестирование обновлено

Какой запрос Testing Library первым

Вопрос

Какой запрос Testing Library рекомендуется использовать в первую очередь, чтобы найти кнопку «Сохранить»?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: getByRole('button', { name: 'Сохранить' }). getByRole ищет элемент так, как его видят пользователь и скринридер: по роли и доступному имени.

Варианты ответа

  1. container.querySelector('.btn-save')
  2. getByTestId('save')
  3. getByRole('button', { name: 'Сохранить' })правильный ответ
  4. getByText('Сохранить') для любых элементов

Разбор

getByRole ищет элемент так, как его видят пользователь и скринридер: по роли и доступному имени. Заодно тест проверяет доступность: если кнопка сделана из div без роли, она не найдётся.

  • CSS-классы это детали реализации, тест сломается при рефакторинге стилей.
  • data-testid это запасной вариант, когда у элемента нет роли и текста.
  • getByText подходит для текста, но не проверяет, что это действительно кнопка.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.