首页 > 解决方案 > Bloc:如何模拟获取状态

问题描述

这是我的测试:

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

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

不是 Stream< blocState >

我怎样才能通过State

标签: fluttermockingstatebloc

解决方案


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

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

然后您可以向控制器添加新状态

controller.add(MyState());

推荐阅读