тест виджета, тестирование кнопки с помощью CircularProgressIndicator

У меня есть два теста, которые после нажатия на кнопку я хочу проверить, появится ли на кнопке CircularProgressIndicator. Проблема после крана и tester.pump(), он не может найти CircularProgressIndicator, вызывающий сбой теста, я попытался с pumpAndSettle() а также добавить Duration(seconds:x) но получил ту же ошибку

Это странно, потому что тесты прошли нормально, прежде чем я обновил flutter sdk до 1.22.0, обновил свои пакеты flutterFire и перешел на использование Android-встраивания V2.

         testWidgets("Should show loading button when click on request button ",
        (WidgetTester tester) async {
      await tester.pumpWidget(
        _buildWidget(
          home: FinancialDialogBill(
            paymentId: "fakePaymentId",
            additionalValueType: AdditionalValueType.fee,
            billValues: billValues,
            installmentList: installments,
          ),
        ),
      );

      expect(find.byKey(financialDialogBillRequestButton), findsOneWidget);
      expect(find.byKey(financialDialogBillRequestButtonLoading), findsNothing);

      await tester.tap(find.byKey(financialDialogBillRequestButton));

      await tester.pump();

      expect(
          find.byKey(financialDialogBillRequestButtonLoading), findsOneWidget);
      expect(find.byKey(financialDialogBillRequestButton), findsNothing);

    });
  });

1 ответ

Немного поздно, но я тоже столкнулся с этой проблемой, самый короткий обходной путь, который я нашел, я просто попробовал / поймал ошибку тайм-аута ...

      try {
  await tester.pumpAndSettle();
} catch (err) {}

expect(find.byKey(financialDialogBillRequestButtonLoading), findsOneWidget);
expect(find.byKey(financialDialogBillRequestButton), findsNothing);

Счастлив, если это может помочь кому-то до того, как будет найдено лучшее решение.

Другие вопросы по тегам