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/test_driver/state_mgmt.dart

43 lines
1.3 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_driver/driver_extension.dart';
import 'package:provider/provider.dart';
import 'package:testing_app/models/favorites.dart';
import 'package:testing_app/screens/favorites.dart';
void main() {
// Create a reference to the state
// so that we can perform operations on it manually.
Favorites favoritesList;
// This line enables the extension.
enableFlutterDriverExtension(
// This handler gets data from the test file
// and then we use it to perform operations on the state object.
handler: (command) {
if (command == 'ADD') {
favoritesList.add(30);
} else if (command == 'REMOVE') {
favoritesList.remove(30);
}
return Future.delayed(Duration(seconds: 1), () => 'DONE');
});
// Call the `main()` function of the app, or call `runApp` with
// any widget you are interested in testing.
runApp(
ChangeNotifierProvider(
create: (context) {
favoritesList = Favorites();
return favoritesList;
},
child: MaterialApp(
home: FavoritesPage(),
),
),
);
}