TGViewer
Flutter Friendly Flutter Friendly @flutterfriendly · 995 subscribers
Post #39 551
#пакет_недели — Patrol. Он помогает писать интеграционные тесты. Например, такие, которые требуют взаимодействия с настоящими устройствами или эмуляторами.

Главное о Patrol
🔴Он строится на основе flutter_test и integration_test.

🔴Он поддерживает нативные функции. Это очень кстати, когда тестируешь что-то, связанное с системными уведомлениями или настройками устройства.

🔴Его нужно использовать вместе с patrol_cli.

Как использовать
Две главные функции Patrol — нативная автоматизация и кастомный поиск. Здесь мы разберем только первую, а подробно про кастомный поиск можно почитать в документации.

Используем Patrol в тесте, который проверяет, как ведет себя приложение, когда взаимодействует с кнопками Home, Recent Apps и панелью уведомлений.
import 'package:example/main.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:patrol/patrol.dart';

void main() {
patrolTest(
'состояние счетчика сохраняется после перехода на домашний экран и возврата',
($) async {
await $.pumpWidgetAndSettle(const MyApp());

await $(FloatingActionButton).tap();
expect($(#counterText).text, '1');

await $.native.pressHome();
await $.native.pressDoubleRecentApps();

expect($(#counterText).text, '1');
await $(FloatingActionButton).tap();
expect($(#counterText).text, '2');

await $.native.openNotifications();
await $.native.pressBack();
},
);
}

patrolTest — обертка, которая заменяет стандартные тестовые функции Flutter. Внутри нее можно взаимодействовать и с виджетами Flutter, и с нативными элементами платформы.

$.native.pressHome() — эмулирует нажатие кнопки Home. Очень полезно, чтобы проверить, как ведет себя приложение, когда его сворачивают.

$.native.pressDoubleRecentApps() — имитирует двойное нажатие на кнопку списка последних приложений (Recent Apps). Можно использовать, чтобы проверить, как ведет себя приложение при возврате из других программ.

$.native.openNotifications() — эмулирует открытие панели уведомлений. Позволяет проверить, как приложение реагирует на системные события и взаимодействие с другими элементами ОС.

❤️ Это мне надо
🤷‍♂️ Нажму кнопки «Назад» и «Домой» руками
  • 👍 6
  • ❤ 4
  • 🔥 1
More from @flutterfriendly
  1. May 14, 2026👀Какой сложный вопрос или тема по Flutter вас сейчас беспокоят? Может, задача не идет, ба…
  2. Apr 17, 2026💭Привет! Это Роза, Flutter-разработчица Friflex! Уверена, многие из вас знакомы с Dart De…
  3. Apr 8, 2026Привет, друзья! Делимся нашей страничкой на Хабре, чтобы всегда оставаться на связи. Там е…
  4. Apr 3, 2026🌸Апрель в календаре и на экране Весна зовет обновлять визуальное: убирать темные темы и в…
  5. Apr 1, 2026Всегда с нетерпением ждем этого дня, чтобы сделать подборку ИТ-мемов Пусть поводов для улы…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →