Я создал следующий тест Flutter для своего виджета
testWidgets("", (WidgetTester tester) async {
await tester.pumpWidget(
ChangeNotifierProvider<SettingsViewProvider>(
create: (context) => SettingsViewProvider(),
child: MaterialApp(
localizationsDelegates: [S.delegate],
home: SettingsScreen(),
),
),
);
final textFormFieldFinder = find.byElementType(TextFormField);
await tester.pump();
expect(textFormFieldFinder, findsNWidgets(3));
});
Виджет является виджетом с состоянием, который использует ChangeNotifierProvider, а потребитель окружает список из трех «TextFormFields».
Consumer<State>(
builder: (context, value, child)=> Column(
children: [TextFormField(...), TextFormField(...), TextFormField(...)];
)
)
Ожидается: ровно 3 совпадающих узла в дереве виджетов
Факт: _ElementTypeFinder:
Что: означает, что ни одного не найдено, но некоторые ожидаются
К сожалению, я получаю, что виджет не найден в дереве виджетов.