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

Stream<Dog> dogStream;
class Dog {
  final String name;
  final String breed;

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

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

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

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

#1楼 票数:0

您可以使用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));
});

  ask by Gurleen Sethi translate from so

未解决问题?本站智能推荐:

2回复

如果流在持续时间内未完成,Dart流是否可以发出值?

我正在使用块来控制视图状态的 Flutter 应用程序。 我想调用外部 API,如果它快速响应,则通过yield结果状态立即显示结果。 但是,如果调用时间超过 5 秒,我想产生一个状态,指示响应需要一段时间,同时仍在等待 API 返回。 我如何使用 Dart Streams 执行此操作,无论是本机还
1回复

Dart测试:期望流不发出任何内容

我想检查某些Stream (例如 bloc)在单元测试期间是否不发出任何内容。 更详细的描述:我使用mockito和flutter_bloc包。 被测系统是一个块。 我的测试: 这是我的集团的映射功能: 这是SomeEvent代码: 我可以检查一下吗? 任何帮助表示赞赏。
5回复

在Dart中保存流的最后一次发出的值

我在Flutter中使用Firestore和底部导航栏制作了一个应用程序。 问题是,当我在选项卡之间切换时,每次都会调用build方法。 构建方法从Firestore下载数据。 因此,当我切换选项卡时,应用程序会闪烁(旋转条显示的时间很短)。 我试图通过将Firestore流移动到构造函数来解决此问
1回复

如何在dart/flutter中收听流值

任何人帮助追踪音频的位置(即) 如果在 initstate 中添加出现错误,我会被困在何处添加此代码,我想通过音频平台收听位置代码从这里开始 代码到此结束总结:在特定位置需要在位置变化时触发一些函数(即) 通过音频播放或应用程序在前台
1回复

我如何从Dart流中的回调函数产生值

我在flutter应用程序中定义了以下流: 我正在使用https://github.com/flutterchina/dio进行下载。 我想产生有关流下载进度的信息,但是onReceiveProgress上的回调仅将常规函数用作回调。 如何获取有关流中接收/总字节数的信息? 谢谢
1回复

如何测试多个Streams是否按特定顺序发出?

我想验证多个Streams按特定顺序发出元素。 我们来看看以下2个Streams。 使用emitsInOrder可能会执行以下操作: 但是我怎样才能轻松测试这样的东西: 谢谢 编辑:我已经添加了尝试解决这个问题作为答案,并希望得到任何反馈。
2回复

检查Dart中是否为特定日期

我想制作一个应用程序来检查它是否是星期五,如果是星期五我希望它说是,如果不是星期五,它现在说没有自动,当我按下FloatingActionButton它说是。 我如何进行检查,然后向应用程序发送“否”或“是”。 当前代码:
1回复

如何返回浮动地理位置定位器的位置值?(编程语言:dart)

我正在使用Flutter开发应用程序。 我正在尝试使用geolocator库将位置值保存到变量中,但是由于以下错误,我无法打印该值。 请查看下面的代码,并告诉我如何将返回位置值保存在变量中。 谢谢你。 /* Convert to location using Geolocator */ Fu