flute-test

0.1.8 • Public • Published

Flute

A shortcut for getting started writing Flutter integration tests. These tests drive a simulator or emulator, making them useful for figuring out app behavior.

It is necessary to download Flutter before using flute.

Setup

From the root of a flutter project, one can setup integration testing.

flute setup

Write

Inside test_driver/app_test.dart exists a scaffold for writing integration tests. Here craft a route for the driver. Add expectations to the program as fit.

Add a key to some widget. Then it can be indexed in the tree for testing.

Text(headerText, key: Key("categoryLabel"), style: Theme.of(context).textTheme.display1)

Reference that widget, use the driver to query state. Finally assert state using expect. The order of tests is relevant to expectations, test-a will drive state into test-b and test-a,test-b into test-c.

import 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart';
 
void main() {
 
  FlutterDriver driver;
 
  setUpAll(() async => driver = await FlutterDriver.connect());
 
  tearDownAll(() async => driver?.close());
 
  group('View Submenus:', () {
 
    test('Open Menu', () async {
      final navLabel = find.byValueKey("leadingNav");
      final navText = await driver.getText(navLabel);
      expect(navText, "Menu");
      final titleLabel = find.byValueKey("titleLabel");
      final titleText = await driver.getText(titleLabel);
      expect(titleText, "Restaurant");
    });
 
    test('Show Appetizers', () async {
      Future<dynamic> _label() async => await driver.getText(find.byValueKey("categoryLabel"));
 
      final appetizers = find.text("Appetizer");
      await driver.tap(appetizers);
      expect(await _label(), "Appetizer");
      var sandwich = find.text("Sandwich");
      await driver.tap(sandwich);
      expect(await _label(), "Appetizer, Sandwich");
      sandwich = find.text("Sandwich");
      await driver.tap(sandwich);
      expect(await _label(), "Appetizer");
    });
    
  });
}

Test

After running flute-setup and writing integration tests, navigate to the root of the flutter project.

There drive your tests using:

flute drive

Package Sidebar

Install

npm i flute-test

Weekly Downloads

0

Version

0.1.8

License

MIT

Unpacked Size

8.69 kB

Total Files

9

Last publish

Collaborators

  • jnblancha