Найти FloatingActionButton в тесте Flutter - PullRequest
0 голосов
/ 25 марта 2020

Я запускаю несколько тестов виджетов в своем приложении Flutter и столкнулся с этой проблемой.

Таким образом, страница, вызываемая в тесте, создается только ListView.builder, который создает список карт и плавающую кнопку «добавить больше карт» после него (кнопка находится внутри ListView.builder). ,

Согласно документации Flutter секрета на самом деле нет, вы просто находите его и нажимаете на него, как на любой другой виджет кнопки.

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

Но я получаю " Плохое состояние: такого элемента нет ", когда тест достигает этой строки

Это полная иерархия виджетов для этой страницы , а вот код теста:

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 ()'.

...