gpt4 book ai didi

flutter - 如何测试流是否在Dart中的特定位置发出值?

转载 作者:行者123 更新时间:2023-12-03 03:59:57 24 4
gpt4 key购买 nike

如果我有一个流发出Dog对象。

Stream<Dog> dogStream;

class Dog {
final String name;
final String breed;

Dog(this.name, this.breed);
}

我想测试第4个值发出的名称。

所以我想忽略 stream发出的前三个值,并检查第四个值是否等于 foo。如何检查特定位置?

PS:有多种方法可以做到这一点,例如使用 expectInOrder,但是我的测试不应该关心发出的前三个值,并且如果我想检查第8个值或说第20个值,则使用 expectInOrder毫无意义。

最佳答案

您可以使用elementAt或跳过流的前三个值并检查发出的项目:

test('stream', () async {
Stream<int> stream() => Stream.fromIterable([1, 2, 3, 4, 5]);

expect(await stream().elementAt(3), 4);
expect(stream().skip(3), emitsInOrder(<dynamic>[4]));
expect(stream().skip(3), emits(4));
});

关于flutter - 如何测试流是否在Dart中的特定位置发出值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58001534/

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