Я запускаю несколько тестов виджетов в своем приложении 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 ()'.