Runs the callback
inside the Flutter test environment.
Use this function for testing custom StatelessWidgets and StatefulWidgets.
The callback can be asynchronous (using async
/await
or
using explicit Futures).
This function uses the test function in the test package to register the given callback as a test. The callback, when run, will be given a new instance of WidgetTester. The find object provides convenient widget Finders for use with the WidgetTester.
Example:
testWidgets('MyWidget', (WidgetTester tester) async {
await tester.pumpWidget(new MyWidget());
await tester.tap(find.text('Save'));
expect(tester, hasWidget(find.text('Success')));
});
Source
void testWidgets(String description, WidgetTesterCallback callback, { bool skip: false, test_package.Timeout timeout }) { TestWidgetsFlutterBinding binding = TestWidgetsFlutterBinding.ensureInitialized(); WidgetTester tester = new WidgetTester._(binding); timeout ??= binding.defaultTestTimeout; test_package.group('-', () { test_package.test(description, () => binding.runTest(() => callback(tester), tester._endOfTestVerifications), skip: skip); test_package.tearDown(binding.postTest); }, timeout: timeout); }