testWidgets function

Future<void> testWidgets(
  1. String description,
  2. Future<void> callback(
    1. WidgetTester tester
    ), {
  3. Object? skip,
})

Runs callback with a fresh WidgetTester, managing setup/teardown automatically.

The callback is async because WidgetTester.pumpWidget needs to start a Program instance.

testWidgets('my widget works', (tester) async {
  await tester.pumpWidget(MyWidget());
  expect(tester.find.text('hello'), isTrue);
});

Implementation

Future<void> testWidgets(
  String description,
  Future<void> Function(WidgetTester tester) callback, {
  Object? skip,
}) async {
  final tester = WidgetTester();
  try {
    await callback(tester);
  } finally {
    await tester.dispose();
  }
}