Flutter-小部件中的测试抽屉如何测试?

时间:2019-06-17 15:57:26

标签: unit-testing flutter flutter-test

我正在测试我的Flutter应用。我有一个小部件抽屉。我正在对此小部件进行测试。我需要打开盒子,然后单击项目。我使用以下代码:

final  drawer = find.byTooltip('Open navigation menu');
expect(drawer, findsWidgets);
tester.tap(drawer) ;

这是工作。但是我不知道如何在抽屉里找到物品并点按它们。 这是抽屉的代码:

    drawer: Drawer(
    key: Key("Drawer"),
    child: ListView(
      children: <Widget>[
         drawerItem(context, 'Login', Icons.account_circle, 'login'),
         drawerItem(context, 'Users', Icons.person, 'users'),
         drawerItem(context, 'Log Out', Icons.exit_to_app, 'logout')
      ],
    ),
  )

  .....

  ListTile drawerItem(BuildContext context, String title, IconData icon,
  [String route]) {
  return new ListTile(
  key: Key(title),
  title: Text(title),
  leading: Icon(icon)
     );

如何单击这些项目?

2 个答案:

答案 0 :(得分:1)

像这样添加onTap

ListTile drawerItem(BuildContext context, String title, IconData icon,
  [String route]) {
  return new ListTile(
  key: Key(title),
  title: Text(title),
  leading: Icon(icon),
  onTap: () {
  print("item Tapped");
 }
);

答案 1 :(得分:1)

使用按类型查找器,该查找器应为您提供特定类型所有项的数组,然后按如下所示按索引访问这些项。 find.byType(ListTile).at(index);