Bloc:如何模拟获取状态

Bloc: how to mock the get state

这是我的测试:

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

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

isn't a Stream< blocState >

如何才能通过State

你必须让你的模拟 return 状态流,而不是状态对象。

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

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

controller.add(MyState());