我为我的小部件创建了以下 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(...)];
)
)
Expected: exactly 3 matching nodes in the widget tree
Actual: _ElementTypeFinder:
Which: means none were found but some were expected
不幸的是,我收到在小部件树中找不到小部件。
最佳答案
似乎可以使用以下方法解决:
final textFormFieldFinder = find.byType(TextFormField);
代替:
final textFormFieldFinder = find.byElementType(TextFormField);
关于flutter - 在提供者的消费者小部件内的测试中找不到小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61440323/