Выбор ответа Junior Тестирование спрашивают часто обновлено
RNTL: getBy, queryBy, findBy
Вопрос
Как в React Native Testing Library проверить, что сообщение об ошибке не отображается?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: expect(screen.queryByText('Ошибка')).toBeNull(). getBy и getAllBy бросают ошибку, если ничего не найдено, поэтому для проверки отсутствия не подходят. findBy ждёт появления и падает по тайм-ауту. queryBy возвращает null, если элемента нет, и создан именно для таких проверок.
Варианты ответа
expect(screen.getByText('Ошибка')).toBeNull()expect(screen.queryByText('Ошибка')).toBeNull()правильный ответexpect(await screen.findByText('Ошибка')).toBeUndefined()expect(screen.getAllByText('Ошибка')).toHaveLength(0)
Разбор
getBy* и getAllBy* бросают ошибку, если ничего не найдено, поэтому для проверки отсутствия не подходят. findBy* ждёт появления и падает по тайм-ауту. queryBy* возвращает null, если элемента нет, и создан именно для таких проверок.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.