Flutter测试并没有从集团中产生任何状态



我有一个情况,当满足某个条件时,块根本没有产生状态(忽略所有事件(。当一个新的事件被添加到集团时,我如何测试是否没有产生任何状态?

我正在使用flatter_bloc:^3.1.0bloc_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();

最新更新