Flutter - Как проверить ящик в тесте виджетов? - PullRequest
0 голосов
/ 17 июня 2019

Я тестирую свое приложение 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 ]

1 голос
/ 17 июня 2019

Используйте искатель по типу, который должен дать вам массив всех элементов определенного типа, а затем просто получить доступ к элементам по индексу, как этот.find.byType(ListTile).at(index);

1 голос
/ 17 июня 2019

добавить 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");
 }
);
...