Написание модульных тестов для Bloc Listener на Flutter

Я пытаюсь написать тестовые примеры виджетов для файла, в котором есть списки блоков для различных состояний. Я пытаюсь запустить эти списковики из своего тестового примера виджета, но у меня не получается. Отладчик никогда не достигает BlocListener. Хотя он входит в BlocBuilder, но после этого выходит. Вот мой код для теста виджета:

    testWidgets('calls listener on multiple state change', (tester) async {
    int latestState;
    var listenerCallCount = 0;
    final expectedStates = [InitialSocialFeedState(), InitiateSocialListPageFetchState(isRefreshed: true), EmptySocialList()];
    await tester.pumpWidget(
        SocialOnboardListner(socialFeedBloc)
    );
    socialFeedBloc.add(LoadSocialListPage(isRefreshed: true));
    expectLater(socialFeedBloc, emitsInOrder(expectedStates)).then((_) {
      expect(listenerCallCount, 1);
      expect(latestState, 3);
    });
  });

    class SocialOnboardListner extends StatelessWidget {
  SocialFeedBloc bloc;
  SocialOnboardListner(this.bloc);

  @override
  Widget build(BuildContext context) {
    return MediaQuery(
        data: MediaQueryData(),
        child: MaterialApp(
            locale: Locale("en"),
            localizationsDelegates: [
              AppLocalizationsDelegate(isTest: true),
              GlobalMaterialLocalizations.delegate,
              GlobalWidgetsLocalizations.delegate,
            ],
            home: BlocListener(
              bloc: bloc,
              listener: (context, state) {

              },
              child: SocialOnBoardPage(),
            )));
  }
}

0 ответов

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