尽管有很多教程,但我不明白小部件测试是如何使用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(),
)
)