Выбор ответа Junior Тестирование обновлено
Flutter: как находить виджеты в тестах
Вопрос
Какой способ поиска кнопки в widget-тесте самый устойчивый к изменениям текста и вёрстки?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: find.byKey(const Key('login-submit')). Ключ задаётся явно для тестов и не меняется при переводе интерфейса или смене дизайна.
Варианты ответа
find.text('Войти')find.byType(ElevatedButton).at(2)find.byWidgetPredicate((w) => w.toString().contains('Войти'))find.byKey(const Key('login-submit'))правильный ответ
Разбор
Ключ задаётся явно для тестов и не меняется при переводе интерфейса или смене дизайна. Текст поменяется при локализации, индекс при добавлении кнопки, а предикат по строковому представлению хрупкий и медленный. find.text уместен, когда проверяется именно текст.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.