Выбор ответа Junior Тестирование спрашивают часто обновлено

Элемент появляется после загрузки

Вопрос

Компонент загружает пользователя и потом показывает его имя. Какой запрос подходит?

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

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

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

Коротко

Правильный ответ: await screen.findByText('Анна'). findBy возвращает промис и повторяет поиск, пока элемент не появится или не истечёт таймаут (1000 мс по умолчанию).

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

  1. screen.getByText('Анна') сразу после render
  2. screen.queryByText('Анна') сразу после render
  3. screen.getByTestId('user-name') сразу после render
  4. await screen.findByText('Анна')правильный ответ

Разбор

findBy возвращает промис и повторяет поиск, пока элемент не появится или не истечёт таймаут (1000 мс по умолчанию). Это сочетание waitFor и getBy.

  • getBy сразу после рендера упадёт: данных ещё нет.
  • queryBy вернёт null, тест ничего полезного не проверит.
  • Поиск по test id ничем не помогает с асинхронностью.

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

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