【问题标题】:Flutter test that no state is yielded from bloc颤振测试没有从 bloc 产生任何状态
【发布时间】:2020-07-08 07:30:32
【问题描述】:

我有一个案例,当满足某些条件时,该集团根本没有产生状态(忽略所有事件)。如何测试当一个新事件添加到 bloc 时没有产生任何状态?

我正在使用 flutter_bloc: ^3.1.0bloc_test: ^3.1.0

      'test ignore all event after AlarmEvent()',
      () async {
        bloc.add(AlarmEvent());
        bloc.add(GetRandomPostEvent());

        await emitsExactly(
          bloc,
          [
            SplashScreenLoadingState(),
            ShowAlarmState(),
          ],
        );
      },
    );

由于该功能尚未实现,我预计测试会失败,但实际上运行成功。有什么想法吗?

【问题讨论】:

    标签: flutter dart bloc


    【解决方案1】:

    您可以专门针对不应该发出任何内容的条件进行测试,并订阅您的 bloc,然后如果该块发出,则在订阅中调用 fail(),因此您知道测试成功的唯一方法是如果 @987654322 @ 没有被调用。这也应该是一个同步调用。

    类似:

    var subscription = myBlocStream.listen((_) { 
      fail('Should not emit'); 
    }); 
    myBloc.doSomething();
    subscription.cancel();
    

    【讨论】:

      猜你喜欢
      • 2021-09-21
      • 2020-08-04
      • 2021-10-30
      • 2021-06-01
      • 2019-10-08
      • 2020-10-14
      • 2019-06-04
      • 2020-05-13
      • 1970-01-01
      相关资源
      最近更新 更多