You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
samples/testing_app/integration_test/app_test.dart

102 lines
3.2 KiB

// Copyright 2020 The Flutter team. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
import 'package:testing_app/main.dart';
void main() {
group('Testing App Driver Tests', () {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
testWidgets('Finding an item in the list', (tester) async {
await tester.pumpWidget(const TestingApp());
// Create variables for finders that are used multiple times.
final itemFinder = find.byKey(const ValueKey('text_25'));
// Scroll until the item to be found appears.
await tester.scrollUntilVisible(
itemFinder,
500.0,
);
// Check if the item contains the correct text.
expect(tester.widget<Text>(itemFinder).data, 'Item 25');
});
testWidgets('Testing IconButtons', (tester) async {
await tester.pumpWidget(const TestingApp());
// Create a finder for the icon.
final iconFinder = find.byKey(const ValueKey('icon_0'));
// Tap on the icon.
await tester.tap(iconFinder);
// Wait 1 second for the SnackBar to be displayed
await tester.pumpAndSettle(const Duration(seconds: 1));
// Verify if appropriate message appears.
expect(find.text('Added to favorites.'), findsOneWidget);
// Tap on the icon again.
await tester.tap(iconFinder);
// Wait 1 second for the SnackBar to be displayed
await tester.pumpAndSettle(const Duration(seconds: 1));
// Verify if appropriate message appears.
expect(find.text('Removed from favorites.'), findsOneWidget);
});
testWidgets('Verifying whether item gets added to favorites',
(tester) async {
await tester.pumpWidget(const TestingApp());
// Add item to favorites.
await tester.tap(find.byKey(const ValueKey('icon_5')));
await tester.pumpAndSettle();
// Tap on the favorites button on the AppBar.
// The Favorites List should appear.
await tester.tap(find.text('Favorites'));
await tester.pumpAndSettle();
// Check if the added item has appeared in the list.
expect(
tester
.widget<Text>(find.byKey(const ValueKey('favorites_text_5')))
.data,
equals('Item 5'),
);
});
testWidgets('Testing remove button', (tester) async {
await tester.pumpWidget(const TestingApp());
// Add item to favorites.
await tester.tap(find.byKey(const ValueKey('icon_5')));
await tester.pumpAndSettle();
// Navigate to Favorites screen.
await tester.tap(find.text('Favorites'));
await tester.pumpAndSettle();
// Tap on the remove icon.
await tester.tap(find.byKey(const ValueKey('remove_icon_5')));
// Wait 1 second for the SnackBar to be displayed
await tester.pumpAndSettle(const Duration(seconds: 1));
// Verify if it disappears.
expect(find.text('Item 5'), findsNothing);
// Verify if appropriate message appears.
expect(find.text('Removed from favorites.'), findsOneWidget);
});
});
}