使用ChangeNotificationProvider测试小工具



尽管有很多教程,但我不明白小部件测试是如何使用ChangeNotificationr Provider的。我是初学者。

这是我需要测试的小部件。

class SummaryScreen extends StatelessWidget {   
const SummaryScreen({Key? key}) : super(key: key);
@override   
Widget build(BuildContext context) {
List<Person> tenants = context.watch<TenantSTATE>().tenants;
return Scaffold( 
body: Text(tenants.length) 
);
}

这是我的测试:

void main() async {
testWidgets("Flutter Widget Test", (WidgetTester tester) async {
await tester.pumpWidget(SummaryScreen());
expect(find.widgetWithIcon(FloatingActionButton, Icons.add), findsOneWidget);
});
}

我得到这个错误:

在此之上找不到正确的提供程序摘要屏幕小工具

我该怎么办?

在调用pumpWidget时,将所需的提供者添加到小部件树中,就像在应用程序中那样:

await tester.pumpWidget(
MultiProvider(
providers: [
Provider<Something>(create: (_) => Something()),
Provider<SomethingElse>(create: (_) => SomethingElse()),
Provider<AnotherThing>(create: (_) => AnotherThing()),
],
child: SummaryScreen(),
)
)

最新更新