gpt4 book ai didi

testing - 对返回流的流进行单元测试

转载 作者:行者123 更新时间:2023-11-28 20:13:03 27 4
gpt4 key购买 nike

我目前正在尝试对我的 BLoC Flutter 代码进行单元测试,但由于我将其描述为“嵌套”流,我的测试失败了。

测试代码如下:

test('fetch carbon events successfully', () async {
final List<CarbonAction> actions = [];
final List expected = [
StateA(),
StateB(),
StateC()
];


when(repo.getActions()).thenAnswer((_) => Stream.value(actions));

expectLater(
homeBloc.state,
emitsInOrder(expected),
);

homeBloc.dispatch(FetchActionsEvent());
});

失败并出现此错误:

Expected: should do the following in order:
• emit an event that StateA:<StateA>
• emit an event that StateB:<StateB>
• emit an event that StateC:<StateC>
Actual: <Instance of 'BehaviorSubject<State>'>
Which: emitted • StateA
• StateB
• StateC
which didn't emit an event that StateC:<StateC>

我相信这是因为 StateC 实际上来自使用 async*yield* 发出的流。在我的代码中,所有这些目前都在工作。

最佳答案

所以,事实证明这只是一个非常无用的错误消息,这只是测试未能通过。

我会确保您的对象的所有字段都完全匹配,尤其是当您使用 Equatable 时。

关于testing - 对返回流的流进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58105343/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com