Flutter Dart测试:EXPECT流不发射任何东西

Flutter Dart测试:EXPECT流不发射任何东西,flutter,unit-testing,dart,bloc,Flutter,Unit Testing,Dart,Bloc,我想检查一些流(例如bloc)在单元测试期间是否没有发出任何东西 更详细的描述:我使用和包。正在测试的系统是一个整体。我的测试: test('sut emits nothing', () { final event = SomeEvent(false); sut.add(event); expectLater( sut, emitsNothing, // <---- HERE I want to check that sut emi

我想检查一些
(例如bloc)在单元测试期间是否没有发出任何东西

更详细的描述:我使用和包。正在测试的系统是一个整体。我的测试:

  test('sut emits nothing', () {
    final event = SomeEvent(false);
    sut.add(event);
    expectLater(
      sut,
      emitsNothing,    // <---- HERE I want to check that sut emits nothing
    );
  });

我能查一下吗?非常感谢您的帮助。

您可以使用软件包来实现这一点


您可以通过使用包来实现这一点


我按照你的建议试了一个测试包。它真的很有用,它允许检查bloc是否不发射任何东西!不使用
verify
选项,只需将[]传递给
expect
参数即可。非常感谢你!我已经投票赞成你的答案了。如果你想让我接受它是正确的,请添加一些关于将[]传递到
expect
的信息和一些相关代码。@moloko这很有趣,我会在业余时间尝试一下,同时我已经根据你的喜好更新了代码。请告诉我是否需要添加任何具体内容:)我按照您的建议尝试了bloc_测试包。它真的很有用,它允许检查bloc是否不发射任何东西!不使用
verify
选项,只需将[]传递给
expect
参数即可。非常感谢你!我已经投票赞成你的答案了。如果你想让我接受它是正确的,请添加一些关于将[]传递到
expect
的信息和一些相关代码。@moloko这很有趣,我会在业余时间尝试一下,同时我已经根据你的喜好更新了代码。如果我需要添加任何特定内容,请告诉我:)
  @override
  Stream<State> mapEventToState(Event event) async* {
    if (event is SomeEvent) {
      // If `flag` is true - then bloc emits a state,
      // if `flag` is false - then bloc emits nothing.
      if (event.flag) {    
        yield State.someState;
      }
    }
  }
abstract class Event extends Equatable {}

class SomeEvent extends Event {
  final bool flag;

  SomeEvent(this.flag);

  @override
  List<Object> get props => [flag];
}
blocTest(
  'CounterBloc emits no events',
  build: () => CounterBloc(),
  act: (_) {}, // no action taken
  expect: [], // no event emitted
);