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

RNTL: как искать элементы

Вопрос

Какой запрос RNTL предпочтительнее для поиска кнопки «Войти»?

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

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

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

Коротко

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

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

  1. getByTestId('btn-3')
  2. Найти третий Pressable в дереве по индексу
  3. getByRole('button', { name: 'Войти' })правильный ответ
  4. UNSAFE_getByType(Pressable)

Разбор

Поиск по роли и доступному имени повторяет то, как интерфейс воспринимает пользователь и скринридер, поэтому тест устойчив к рефакторингу и заодно проверяет доступность. testID допустим, когда роли нет, но это деталь реализации. Индексы и поиск по типу компонента ломаются при любых изменениях разметки.

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

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