我有一个情况,当满足某个条件时,块根本没有产生状态(忽略所有事件(。当一个新的事件被添加到集团时,我如何测试是否没有产生任何状态?
我正在使用flatter_bloc:^3.1.0和bloc_test:^3.1.0\/strong>
'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();