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

Какой запрос RTL предпочтительнее

Вопрос

Какой способ найти кнопку отправки RTL рекомендует в первую очередь?

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

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

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

Коротко

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

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

  1. screen.getByRole('button', { name: 'Отправить' })правильный ответ
  2. screen.getByTestId('submit-btn') с явным test id
  3. container.querySelector('button.btn-submit')
  4. screen.getByText('Отправить', { selector: 'span' })

Разбор

Поиск по роли и доступному имени повторяет то, как элемент воспринимают пользователи и скринридеры. Если кнопка сделана из div, тест сразу это покажет.

  • getByTestId это крайний случай: пользователю test id не виден.
  • querySelector по классу привязывает тест к стилям и разметке.
  • getByText найдёт текст, но не проверит, что это кнопка.

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

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