how to test blocconsumer on flutter

Viewed 768

i want to ask about unit test widget on flutter. i have a screen that only listen on previous screen, the code :

return BlocConsumer<MenuBloc, MenuState>(
        listener: (context, state) {
      if (state is MyScreenLoaded) {
        Map<String, dynamic> messageShow = jsonDecode(state.message);
        var messageContent = messageShow['message'];
        state.statusCode != '200'
            ? _showAlert(state.statusCode, messageContent)
            : _checkCertificate(state.statusCode, messageContent);
      }
    }, builder: (context, state) {
//return code here
}

on _showAlert method void have some widget pop up, how to test it? i have do testing like this. but not working :

testWidgets('test existing trivia when state MyScreenloaded success', (WidgetTester tester) async{
    Map<String, String> testMessage = {'message': 'this is test'};
    when(menuBloc.state).thenAnswer((realInvocation) => MyScreenLoaded(message: '200', statusCode: testMessage.toString()));

    await tester.pumpWidget(BlocProvider.value(value: registerBloc, child: triviaScreen,));
    expect(find.byKey(MyScreenKeys.successTrivia), findsWidgets);
    expect(find.byKey(MyScreenKeys.imageSuccessTrivia), findsWidgets);
  });

thank you anyway...

0 Answers
Related