Я пытаюсь написать тестовые наборы виджетов для файла, который имеет списки blo c для различных состояний. Я пытаюсь запустить эти списки из моего тестового примера виджета, но я не могу это сделать. Отладчик никогда не доходит до 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(),
)));
}
}