带有可丢弃事件的Flutter整体测试



如何使用具有可丢弃(或可重新启动(事件的颤振整体测试来测试整体事件?

事件示例:

on<SomeEvent>(
_mapSomeEvent,
transformer: droppable(),
);

我试着在颤振群测试中,在可丢弃事件之后立即调用事件,但没有成功。我还尝试使用Isolates,并在Future.delayed的可丢弃事件中存根一个方法,这样处理起来需要更长的时间,但仍然没有得到我想要的结果。

基本上,我想要一些像这样的测试来工作:

blocTest<SomeBloc, SomeState>(
'Description',
build: () => SomeBloc(),
act: (bloc) async {
bloc.add(DroppableEvent());
bloc.add(SomeEvent());
},
expect: () => [
StateFromDroppable(),
],
);

只有一个状态来自可丢弃事件,因为另一个状态应该被丢弃。相反,我得到了两个发射的卫星,一个来自DroppableEvent,另一个来自于SomeEvent

这是一年前的事了,但我将把我的解决方案放在这里:

假设您正在为BLoC内的用例调用异步调用;导入";我添加的行:

  • 使用Completer模拟用例返回
  • CCD_ 4
  • 在CCD_ 6之后的CCD_
final completer = Completer<void>();
blocTest(
"description",
build: () => bloc,
setUp: () {
when(useCase.call).thenAnswer((_) => completer.future);
},
act: (bloc) async {
bloc.add(DroppableEvent());
await Future<void>.delayed(Duration.zero);
bloc.add(SomeEvent());
await Future<void>.delayed(Duration.zero);
completer.complete();
await Future<void>.delayed(Duration.zero);
},
expect: () => [
StateFromDroppable(),
],
);

相关内容

  • 没有找到相关文章

最新更新