Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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)

AltStyle によって変換されたページ (->オリジナル) /