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

Flutter: как находить виджеты в тестах

Вопрос

Какой способ поиска кнопки в widget-тесте самый устойчивый к изменениям текста и вёрстки?

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

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

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

Коротко

Правильный ответ: find.byKey(const Key('login-submit')). Ключ задаётся явно для тестов и не меняется при переводе интерфейса или смене дизайна.

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

  1. find.text('Войти')
  2. find.byType(ElevatedButton).at(2)
  3. find.byWidgetPredicate((w) => w.toString().contains('Войти'))
  4. find.byKey(const Key('login-submit'))правильный ответ

Разбор

Ключ задаётся явно для тестов и не меняется при переводе интерфейса или смене дизайна. Текст поменяется при локализации, индекс при добавлении кнопки, а предикат по строковому представлению хрупкий и медленный. find.text уместен, когда проверяется именно текст.

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

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