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);
}