void testWidgets(String description, WidgetTesterCallback callback, { bool skip: false, Timeout timeout })

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