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

Как проверить, что элемента нет

Вопрос

Нужно проверить, что сообщения об ошибке нет на экране. Какой вариант правильный?

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

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

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

Коротко

Правильный ответ: expect(screen.queryByText('Ошибка')).not.toBeInTheDocument(). queryBy возвращает null, если элемента нет, и проверка проходит.

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

  1. expect(screen.getByText('Ошибка')).not.toBeInTheDocument()
  2. expect(screen.queryByText('Ошибка')).not.toBeInTheDocument()правильный ответ
  3. expect(await screen.findByText('Ошибка')).toBeNull()
  4. expect(screen.getByText('Ошибка')).toBeNull()

Разбор

queryBy возвращает null, если элемента нет, и проверка проходит. Это его основное назначение.

  • getBy бросит ошибку ещё до expect, тест упадёт.
  • findBy при отсутствии элемента отклонит промис по таймауту, тест упадёт.
  • Последний вариант упадёт по той же причине, что и первый.

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

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