【问题标题】:Flutter - how to get widget count on integration testFlutter - 如何在集成测试中获取小部件计数
【发布时间】:2019-06-27 14:50:35
【问题描述】:

如何获取小部件计数

final SerializableFinder finder = find.byType('MyWidget');
await driver.tap(finder);

但 MyWidget 可能不止一个,
会抛出异常

【问题讨论】:

  • 你发现了吗?

标签: flutter integration-testing


【解决方案1】:

您需要使用一些属性来找到所需的小部件。例如,为每个小部件添加一个Key,以便更轻松地找到您需要的小部件:

...MyWidget(key: Key('myWidget1'))...

那么,通过key找到它:

find.byKey(Key('myWidget1'))

如果你想找到小部件的数量,你可以使用这个:

final finder = find.byType(MyWidget, skipOffstage: false); // Without quotes!
final count = tester.widgetList<MyWidget>(finder).length;

【讨论】:

    【解决方案2】:

    如果您想找到一个或多个与您匹配的小部件,请使用findsWidgets

    final SerializableFinder finder = find.byType('MyWidget');
    expect(finder, findsWidgets);
    

    如果您正在寻找确切数量的小部件,您可以使用findsNWidgets()(假设为 4)计算小部件树中有多少匹配节点:

    final SerializableFinder finder = find.byType('MyWidget');
    expect(finder, findsNWidgets(4));
    

    【讨论】:

    • 这不适用于 Flutter 驱动程序和集成测试。
    • 问题是如何获得像if(find.byType(Text).length) 或类似的东西......
    猜你喜欢
    • 2019-06-11
    • 2019-05-01
    • 2021-11-13
    • 1970-01-01
    • 2022-06-24
    • 2021-09-29
    • 2020-02-26
    • 2019-02-10
    • 2019-10-31
    相关资源
    最近更新 更多