LeonardoRosaa / patrol

Flutter-first UI testing framework. Ready for action!

Home Page:https://patrol.leancode.co

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Patrol

patrol on pub.dev patrol_cli on pub.dev code style powered by

Patrol promotial graphics

Simple yet powerful Flutter-native UI testing framework eliminating limitations of flutter_test, integration_test, and flutter_driver.

Learn more about Patrol:

Patrol custom finders

Flutter's finders are powerful, but not very intuitive to use.

We took them and made something awesome.

Thanks to Patrol's custom finders, you'll take your tests from this:

testWidgets('signs up', (WidgetTester tester) async {
  await tester.pumpWidget(AwesomeApp());
  await tester.pumpAndSettle();

  await tester.enterText(
    find.byKey(Key('emailTextField')),
    'charlie@root.me',
  );
  await tester.pumpAndSettle();

  await tester.enterText(
    find.byKey(Key('nameTextField')),
    'Charlie',
  );
  await tester.pumpAndSettle();

  await tester.enterText(
    find.byKey(Key('passwordTextField')),
    'ny4ncat',
  );
  await tester.pumpAndSettle();

  await tester.tap(find.byKey(Key('termsCheckbox')));
  await tester.pumpAndSettle();

  await tester.tap(find.byKey(Key('signUpButton')));
  await tester.pumpAndSettle();

  expect(find.text('Welcome, Charlie!'), findsOneWidget);
});

to this:

patrolTest('signs up', (PatrolTester $) async {
  await $.pumpWidgetAndSettle(AwesomeApp());

  await $(#emailTextField).enterText('charlie@root.me');
  await $(#nameTextField).enterText('Charlie');
  await $(#passwordTextField).enterText('ny4ncat');
  await $(#termsCheckbox).tap();
  await $(#signUpButton).tap();
  
  await $('Welcome, Charlie!').waitUntilVisible();
});

Learn more about custom finders in the docs!

CLI

See packages/patrol_cli.

The CLI is needed to enable Patrol's native automation feature in integration tests.

To run widget tests, you can simply use flutter test.

Package

See packages/patrol.

About

Flutter-first UI testing framework. Ready for action!

https://patrol.leancode.co

License:Apache License 2.0


Languages

Language:Dart 47.9%Language:Kotlin 24.1%Language:Java 19.4%Language:Swift 5.6%Language:Objective-C 1.7%Language:Shell 0.7%Language:Ruby 0.6%Language:MATLAB 0.0%