Bloc:如何模拟获取状态

Posted

技术标签:

【中文标题】Bloc:如何模拟获取状态【英文标题】:Bloc: how to mock the get state 【发布时间】:2019-11-25 23:58:14 【问题描述】:

这是我的测试:

 MockBloc bloc = MockBloc();
        when (bloc.state).thenAnswer((_) => State)

我想给出一个特定的状态,但是,如果我尝试在那里简单地写 MyState(),IDE 只会说

不是流

我怎样才能通过State

【问题讨论】:

【参考方案1】:

你必须让你的模拟返回一个状态流,而不是状态对象。

final controller = StreamController<BlocState>();
when(bloc.state).thenAnswer((_) => controller.stream);

然后你可以给控制器添加新的状态

controller.add(MyState());

【讨论】:

以上是关于Bloc:如何模拟获取状态的主要内容,如果未能解决你的问题,请参考以下文章

如何在登录页面中使用 BLoC

Flutter Bloc 不断重建小部件而不改变状态

flutter_bloc 4.0.0如何获取事件属性参数。

如何使用 bloc 未来获取流从后端过滤数据?

使用 blocbuilder 检查 bloc 状态

BLoC 产生新状态后 BlocBuilder() 未更新