Skip to content

Commit

Permalink
test(integration): understrand flutter drive test
Browse files Browse the repository at this point in the history
  • Loading branch information
bwnyasse committed May 21, 2020
1 parent 6cd3fd4 commit 3a974bb
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 2 deletions.
4 changes: 2 additions & 2 deletions test/src/common.dart
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,8 @@ final exampleJsonResponse2 = {
"original_language": "en",
"original_title": "London the best",
"poster_path": null,
"release_date": "1999-10-12",
"title": "Fight Club",
"release_date": "1999-10-20",
"title": "Fight Club 2",
"overview": "Overview 2",
"video": false,
"vote_average": 8.8,
Expand Down
26 changes: 26 additions & 0 deletions test_driver/app.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:flutter_driver/driver_extension.dart';
import 'package:flutter_movie_deep_dive_test/src/app.dart';
import 'package:flutter_movie_deep_dive_test/src/providers/providers.dart';
import 'package:http/http.dart';
import 'package:http/testing.dart';

import '../test/src/common.dart';

void main() {
// This line enables the extension.
enableFlutterDriverExtension();

final mockClient = MockClient((request) async {
return Response(json.encode(exampleJsonResponse2), 200);
});

// Call the `main()` function of the app, or call `runApp` with
// any widget you are interested in testing.
runApp(AppProvider(
httpClient: mockClient,
child: MyApp(),
));
}
43 changes: 43 additions & 0 deletions test_driver/app_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
// Imports the Flutter Driver API.
import 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart';

void main() {
group('Movies App', () {
FlutterDriver driver;

// Connect to the Flutter driver before running any tests.
setUpAll(() async {
driver = await FlutterDriver.connect();
});

// Close the connection to the driver after the tests have completed.
tearDownAll(() async {
if (driver != null) {
driver.close();
}
});

test('starts with topRated', () async {
// Movie 1
SerializableFinder titleTextFinder1 = find.byValueKey('1-title');
SerializableFinder overviewTextFinder1 = find.byValueKey('1-overview');
SerializableFinder releaseTextFinder1 = find.byValueKey('1-releaseDate');

//TODO: 1- provide to good value for the test
expect(await driver.getText(titleTextFinder1), '');
expect(await driver.getText(overviewTextFinder1), '');
expect(await driver.getText(releaseTextFinder1), '');

// Movie 2
//TODO: 2- initialize titleTextFinder2 , overviewTextFinder2 , releaseTextFinder2
SerializableFinder titleTextFinder2;
SerializableFinder overviewTextFinder2;
SerializableFinder releaseTextFinder2;

expect(await driver.getText(titleTextFinder2), 'Fight Club 2');
expect(await driver.getText(overviewTextFinder2), 'Overview 2');
expect(await driver.getText(releaseTextFinder2), '1999-10-20');
});
});
}

0 comments on commit 3a974bb

Please sign in to comment.