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...