From c1d8ccaa8d769eb1a4b3f70765b86e6ffa2d7a2d Mon Sep 17 00:00:00 2001 From: Rody Davis Date: Tue, 7 May 2019 13:31:07 -0400 Subject: [PATCH] Adding Base Tests --- test_driver/main.dart | 11 +++++++++ test_driver/main_test.dart | 49 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/test_driver/main.dart b/test_driver/main.dart index e69de29..da208f9 100644 --- a/test_driver/main.dart +++ b/test_driver/main.dart @@ -0,0 +1,11 @@ +import 'package:flutter_piano/main.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_driver/driver_extension.dart'; + +void main() { + // Enable integration testing with the Flutter Driver extension. + // See https://flutter.io/testing/ for more info. + enableFlutterDriverExtension(); + WidgetsApp.debugAllowBannerOverride = false; // remove debug banner + runApp(MyApp()); +} diff --git a/test_driver/main_test.dart b/test_driver/main_test.dart index e69de29..eab24f9 100644 --- a/test_driver/main_test.dart +++ b/test_driver/main_test.dart @@ -0,0 +1,49 @@ +// This is a basic Flutter Driver test for the application. A Flutter Driver +// test is an end-to-end test that "drives" your application from another +// process or even from another computer. If you are familiar with +// Selenium/WebDriver for web, Espresso for Android or UI Automation for iOS, +// this is simply Flutter's version of that. + +import 'package:flutter_driver/flutter_driver.dart'; +import 'package:test/test.dart'; +import 'package:screenshots/config.dart'; +import 'package:screenshots/capture_screen.dart'; + +void main() { + group('end-to-end test', () { + FlutterDriver driver; + final Map config = Config().config; + + setUpAll(() async { + // Connect to a running Flutter application instance. + driver = await FlutterDriver.connect(); + }); + + tearDownAll(() async { + if (driver != null) driver.close(); + }); + + test('tap on the floating action button; verify counter', () async { + // Finds the floating action button (fab) to tap on + SerializableFinder fab = find.byTooltip('Increment'); + + // Wait for the floating action button to appear + await driver.waitFor(fab); + + // take screenshot before number is incremented + await screenshot(driver, config, '0'); + + // Tap on the fab + await driver.tap(fab); + + // Wait for text to change to the desired value + await driver.waitFor(find.text('1')); + + // take screenshot after number is incremented + await screenshot(driver, config, '1'); + + // increase timeout from 30 seconds for testing + // on slow running emulators in cloud + }, timeout: Timeout(Duration(seconds: 120))); + }); +}