
[英]Can Dart Streams emit a value if the stream is not done within a duration?
[英]Dart tests: excpect stream to emit nothing
我想检查一些Stream
(例如 bloc)在单元测试期间没有发出任何信号。
更详细的描述:我使用mockito和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
);
});
这是映射我集团的 function:
@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 package 来实现这一点。
blocTest(
'CounterBloc emits no events',
build: () => CounterBloc(),
act: (_) {}, // no action taken
expect: [], // no event emitted
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.