flutter - 在 Flutter 测试中找到 FloatingActionButton

标签 flutter flutter-test

我正在我的 Flutter 应用程序中运行一些小部件测试,并遇到了这个问题。

因此,测试中调用的页面仅由 ListView.builder 生成,该 ListView.builder 构建卡片列表以及其后的“添加更多卡片” float 按钮(该按钮位于 ListView.builder 内部)。

根据Flutter documentation实际上没有什么 secret ,您只需找到它并像其他按钮小部件一样点击它即可。

await tester.tap(find.byType(FloatingActionButton));

但是当测试到达该行时,我收到“错误状态:没有这样的元素”

This is the full widget hierarchy for that page这是测试代码:

testWidgets('Connecting with new machine', (WidgetTester tester) async {
  await tester.pumpWidget(makeWigdetTestable(child: MaquinasPage()));
  await tester.tap(find.byType(FloatingActionButton));
  await tester.pumpAndSettle();

  expect(find.text('new machine connected'), findsOneWidget);
});

注意:“makeWidgetTestable”小部件仅返回一个 MaterialApp,其“home”属性是参数“MaquinasPage()”。

最佳答案

我遇到过这样的情况,我想从脚手架中找到一个 float 操作按钮

return Scaffold(
  appBar: AppBar(title: Text("Title")),
  body: Container(*** my code ***),
  floatingActionButton: FloatingActionButton(
    child: Icon(Icons.add),
    onPressed: () => { *** my code ***}
  ),
);

我的测试:

expect(find.widgetWithIcon(FloatingActionButton, Icons.add), findsOneWidget);

关于flutter - 在 Flutter 测试中找到 FloatingActionButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60849918/

相关文章:

dart - 如何在 flutter 测试覆盖率中排除文件?

android - 使用 Flutter 的 Android Studio 中不显示设备列表

flutter - 如何在 Flutter 集成测试中等待按钮启用

android - 带有搜索过滤器的Flutter应用 GridView ?

multithreading - 使用列表时 Dart 隔离非常慢

flutter - 如何从 Canvas CustomPaint 删除/剪辑?

android - 如何检查 firebase 中的路径是否存在(检查 child 是否存在) flutter

dart - 如何在 Flutter 小部件测试中等待 future 完成?

android - 运行 Flutter 身份验证时出现黑屏

dart - 如何在段落中加粗(或格式化)一段文本?