Dart 测试:期望流不发出任何内容
Dart tests: excpect stream to emit nothing
我想检查一些 Stream
(例如 bloc)在单元测试期间什么都不发出。
更详细的说明:我用的是mockito and flutter_bloc包。被测系统是一个整体。我的测试:
test('sut emits nothing', () {
final event = SomeEvent(false);
sut.add(event);
expectLater(
sut,
emitsNothing, // <---- HERE I want to check that sut emits nothing
);
});
这是我的区块的映射函数:
@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;
}
}
}
这是SomeEvent
的代码:
abstract class Event extends Equatable {}
class SomeEvent extends Event {
final bool flag;
SomeEvent(this.flag);
@override
List<Object> get props => [flag];
}
我可以看看吗?任何帮助表示赞赏。
您可以使用 bloc_test 包来实现。
blocTest(
'CounterBloc emits no events',
build: () => CounterBloc(),
act: (_) {}, // no action taken
expect: [], // no event emitted
);
我想检查一些 Stream
(例如 bloc)在单元测试期间什么都不发出。
更详细的说明:我用的是mockito and flutter_bloc包。被测系统是一个整体。我的测试:
test('sut emits nothing', () {
final event = SomeEvent(false);
sut.add(event);
expectLater(
sut,
emitsNothing, // <---- HERE I want to check that sut emits nothing
);
});
这是我的区块的映射函数:
@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;
}
}
}
这是SomeEvent
的代码:
abstract class Event extends Equatable {}
class SomeEvent extends Event {
final bool flag;
SomeEvent(this.flag);
@override
List<Object> get props => [flag];
}
我可以看看吗?任何帮助表示赞赏。
您可以使用 bloc_test 包来实现。
blocTest(
'CounterBloc emits no events',
build: () => CounterBloc(),
act: (_) {}, // no action taken
expect: [], // no event emitted
);