dart - flutter 测试 : Waiting for a certain duration

在我测试点击我的按钮后,我试图等待一段时间,然后使用 expect 检查结果。我正在使用 Future.delayed 。但这对我不起作用。我遇到了超时错误。

  TimeoutException after 0:00:05.000000: Test timed out after 5 seconds.

这是我使用的代码:

... // other tests
await tester.tap(find.widgetWithText(GestureDetector, "ref size"));
await new Future.delayed(new Duration(milliseconds: 50));
expect(testContainerState.childWidth, 50.0);

有人知道为什么会发生这种(imo)奇怪的行为吗?

最佳答案

因此,从一个更简单的答案开始,在 flutter 测试中等待一段时间的正确方法是使用 tester.pump

await tester.pump(new Duration(milliseconds: 50));

为什么会发生这种情况的更长答案与 flutter 测试环境有关。为了确保测试是可靠的,即使面对随时间变化的动画,环境也会使用诸如 FakeAsync 之类的实用程序来模拟尽可能多的异步行为。来自 package:quiver.

关于dart - flutter 测试 : Waiting for a certain duration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49581157/

相关文章:

android - 什么时候在 Flutter 中使用 setState?

flutter - 将容器缩小到较小的 child 而不是扩大到填充 parent

flutter - 如何在 Flutter 中将一个小部件放在另一个小部件之上?

dart - 长文本 flutter 中的换行符

dart - Flutter 中的 Scaffold 和 MaterialApp 有什么区别?

firebase - 如何使用 buildArguments 或其他任何东西在 Flutter/Fi

flutter - 如何像在 Hamilton Flutter 应用程序中一样在 Flutter 中

android - 将自定义 boxshadow 添加到 Flutter 卡

flutter - 如何拉伸(stretch)图标以填充父级?

loops - 从 List.map() 获取迭代索引