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

Flutter: integration_test и нативные диалоги

Вопрос

Integration-тест должен пройти онбординг с системным запросом разрешения на уведомления. Что учесть?

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

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

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

Коротко

Правильный ответ: integrationtest не видит нативный диалог: нужен Patrol или выдача разрешения заранее. Тестовый драйвер Flutter работает внутри дерева виджетов и не управляет нативными окнами: разрешения, уведомления, выбор фото.

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

  1. integration_test нажимает системные диалоги так же, как обычные виджеты Flutter
  2. integration_test не видит нативный диалог: нужен Patrol или выдача разрешения заранееправильный ответ
  3. Такие сценарии в принципе возможно проверить только вручную на устройстве
  4. Нужно переписать системный диалог на Flutter, иначе тест не сможет его закрыть

Разбор

Тестовый драйвер Flutter работает внутри дерева виджетов и не управляет нативными окнами: разрешения, уведомления, выбор фото. Варианты: Patrol с нативной автоматизацией, заранее выданные разрешения при запуске (команды adb shell pm grant, xcrun simctl privacy) или абстракция над сервисом разрешений с фейком в тестах. Переписывать системный диалог нельзя.

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

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