flutter_driver_extension_extensions

Last updated:

0 purchases

flutter_driver_extension_extensions Image
flutter_driver_extension_extensions Images
Add to Cart

Description:

flutter driver extension extensions

flutter_driver_extension_extensions #
Flutter package to enhance Flutter Driver possibilities with Finder Extensions and Command Extensions.
Rationale #
Flutter Driver enables test instrumentation from any language or framework. And so this extensions.
The case is different for integration tests package, which only allows test cases to be written from dart (in general).
Getting Started #
Assuming you're already using Flutter Driver, you can go straight to point 2.
1. Turn On Flutter Driver #
Follow an introduction to integration testing steps.
2. Attach Flutter Driver Extensions #
In test_driver/app.dart (or any your test driver application file) add import:
import 'package:flutter_driver_extension_extensions/flutter_driver_extension_factories.dart';
copied to clipboard
In the same file, call enableFlutterDriverExtension with the new command and finders arguments:
enableFlutterDriverExtension(
// +++
commands: commandExtensions,
finders: finderExtensions,
// +++
);
copied to clipboard
3. Use Extensions From Tests File #
In test_driver/app_test.dart add import:
import 'package:flutter_driver_extension_extensions/flutter_driver_extensions.dart';
copied to clipboard
And start using extensions:
group("E2E Tests", () {
setUpAll(() async {
driver = await FlutterDriver.connect();
});

tearDownAll(() async {
await driver.close();
});

test("longPress", () async {
await driver.longPress(find.byValueKey("button"));
});

test("getChildrenCount", () async {
final count = await driver.getChildrenCount(find.byValueKey("row"));
expect(count, 7);
});

test("atFirst finder", () async {
final count = await driver.waitFor(find.byType("MaterialButton").atFirst());
expect(count, 7);
});
}
copied to clipboard
Available extensions #
The package adds extension functions on Driver object and finders.

driver is the object returned by driver = await FlutterDriver.connect();
finder is one of find.byText(...), find.byType(...) etc. Could be used as an argument of command (e.g. waitFor)

Commands:

driver.getValueKey(finder) - returns a Key value of single element found by finder (tip: it must be only one available)
driver.getCount(finder) - returns a number of elements matched by the given finder (e.g. number of MaterialButtons in the row)
driver.getChildrenCount(finder) - returns a number of direct children inside a component found by finder
driver.getInnerText(finder) - returns a "text" of any component that has children with

Finders:

finder.at(n) - finds an element at nth place
finder.atFirst() - finds only first element
finder.atLast() - finds the last element

For the complete use case check our E2E tests.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.