Skip to content

Commit 3a974bb

Browse files
committed
test(integration): understrand flutter drive test
1 parent 6cd3fd4 commit 3a974bb

File tree

3 files changed

+71
-2
lines changed

3 files changed

+71
-2
lines changed

test/src/common.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,8 @@ final exampleJsonResponse2 = {
117117
"original_language": "en",
118118
"original_title": "London the best",
119119
"poster_path": null,
120-
"release_date": "1999-10-12",
121-
"title": "Fight Club",
120+
"release_date": "1999-10-20",
121+
"title": "Fight Club 2",
122122
"overview": "Overview 2",
123123
"video": false,
124124
"vote_average": 8.8,

test_driver/app.dart

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import 'dart:convert';
2+
3+
import 'package:flutter/material.dart';
4+
import 'package:flutter_driver/driver_extension.dart';
5+
import 'package:flutter_movie_deep_dive_test/src/app.dart';
6+
import 'package:flutter_movie_deep_dive_test/src/providers/providers.dart';
7+
import 'package:http/http.dart';
8+
import 'package:http/testing.dart';
9+
10+
import '../test/src/common.dart';
11+
12+
void main() {
13+
// This line enables the extension.
14+
enableFlutterDriverExtension();
15+
16+
final mockClient = MockClient((request) async {
17+
return Response(json.encode(exampleJsonResponse2), 200);
18+
});
19+
20+
// Call the `main()` function of the app, or call `runApp` with
21+
// any widget you are interested in testing.
22+
runApp(AppProvider(
23+
httpClient: mockClient,
24+
child: MyApp(),
25+
));
26+
}

test_driver/app_test.dart

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// Imports the Flutter Driver API.
2+
import 'package:flutter_driver/flutter_driver.dart';
3+
import 'package:test/test.dart';
4+
5+
void main() {
6+
group('Movies App', () {
7+
FlutterDriver driver;
8+
9+
// Connect to the Flutter driver before running any tests.
10+
setUpAll(() async {
11+
driver = await FlutterDriver.connect();
12+
});
13+
14+
// Close the connection to the driver after the tests have completed.
15+
tearDownAll(() async {
16+
if (driver != null) {
17+
driver.close();
18+
}
19+
});
20+
21+
test('starts with topRated', () async {
22+
// Movie 1
23+
SerializableFinder titleTextFinder1 = find.byValueKey('1-title');
24+
SerializableFinder overviewTextFinder1 = find.byValueKey('1-overview');
25+
SerializableFinder releaseTextFinder1 = find.byValueKey('1-releaseDate');
26+
27+
//TODO: 1- provide to good value for the test
28+
expect(await driver.getText(titleTextFinder1), '');
29+
expect(await driver.getText(overviewTextFinder1), '');
30+
expect(await driver.getText(releaseTextFinder1), '');
31+
32+
// Movie 2
33+
//TODO: 2- initialize titleTextFinder2 , overviewTextFinder2 , releaseTextFinder2
34+
SerializableFinder titleTextFinder2;
35+
SerializableFinder overviewTextFinder2;
36+
SerializableFinder releaseTextFinder2;
37+
38+
expect(await driver.getText(titleTextFinder2), 'Fight Club 2');
39+
expect(await driver.getText(overviewTextFinder2), 'Overview 2');
40+
expect(await driver.getText(releaseTextFinder2), '1999-10-20');
41+
});
42+
});
43+
}

0 commit comments

Comments
 (0)