我有一个情况,当满足某些条件时,该集团根本不产生任何状态(忽略所有事件)。当向bloc添加新事件时,如何测试没有状态产生?
我正在使用 flutter_bloc:^ 3.1.0 和 bloc_test:^ 3.1.0
'test ignore all event after AlarmEvent()',
() async {
bloc.add(AlarmEvent());
bloc.add(GetRandomPostEvent());
await emitsExactly(
bloc,
[
SplashScreenLoadingState(),
ShowAlarmState(),
],
);
},
);
由于该功能尚未实现,我期望测试会失败,但实际上运行成功。任何的想法 ?
最佳答案
您可以专门针对不发出任何内容的条件进行测试,并订阅您的块,然后如果该块发出,则在订阅中调用fail()
,因此您知道,只有不调用fail()
,测试成功的唯一方法。这也应该是一个同步调用。
就像是:
var subscription = myBlocStream.listen((_) {
fail('Should not emit');
});
myBloc.doSomething();
subscription.cancel();
关于flutter - flutter 测试,表明 Bloc 未产生任何状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60888044/