flutter - flutter 测试,表明 Bloc 未产生任何状态

标签 flutter dart bloc

我有一个情况,当满足某些条件时,该集团根本不产生任何状态(忽略所有事件)。当向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/

相关文章:

sqlite - 从sqflite按值获取数据

dart - 如何使用 dart2js 将 Dart Polymer 应用程序部署到 Javascript

flutter - 如何从一个 Dart 文件访问另一个方法?

flutter_bloc 8 : what is the best practice for listening to state changes from another bloc

flutter - 如何将 infinite_scroll_pagination 用于 bloc 模式

flutter - ColoredBox vs Container with color,有什么区别?

flutter - Dart 中的这个运算符 "?."是什么?

android - flutter 中的响应式用户界面

使用分隔符按百分比进行 flutter 行布局

flutter - 为什么我们不能在具有 bloc 属性的 Consumer 内部使用 BlocProvider.of(blocContext) ?什么是解决方案?