Skip to content

Instantly share code, notes, and snippets.

@arn3la
Last active February 15, 2022 08:50
Show Gist options
  • Save arn3la/127ab6032fab63066884cd1283a44131 to your computer and use it in GitHub Desktop.
Save arn3la/127ab6032fab63066884cd1283a44131 to your computer and use it in GitHub Desktop.
import 'package:flutter/material.dart';
import 'package:flutter_tdd/home/home_page.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
testWidgets('home page is created', (WidgetTester tester) async {
final testWidget = MaterialApp(
home: HomePage(),
);
await tester.pumpWidget(testWidget);
await tester.pumpAndSettle();
});
testWidgets('home page contains hello world text',
(WidgetTester tester) async {
final testWidget = MaterialApp(
home: HomePage(),
);
await tester.pumpWidget(testWidget);
await tester.pumpAndSettle();
expect(find.text('Hello World!'), findsOneWidget);
});
testWidgets('home page contains button', (WidgetTester tester) async {
final testWidget = MaterialApp(
home: HomePage(),
);
await tester.pumpWidget(testWidget);
await tester.pumpAndSettle();
final buttonMaterial = find.descendant(
of: find.byType(ElevatedButton),
matching: find.byType(Material),
);
final materialButton = tester.widget<Material>(buttonMaterial);
expect(materialButton.color, Colors.blue);
expect(find.text('Weather today'), findsOneWidget);
expect(find.byKey(Key('icon_weather')), findsOneWidget);
});
testWidgets('notify when button is pressed', (WidgetTester tester) async {
var pressed = false;
final testWidget = MaterialApp(
home: HomePage(
onPressed: () => pressed = true,
),
);
await tester.pumpWidget(testWidget);
await tester.pumpAndSettle();
await tester.tap(find.byType(ElevatedButton));
await tester.pumpAndSettle();
expect(pressed, isTrue);
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment