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:如何模拟获取状态的主要内容,如果未能解决你的问题,请参考以下文章