在我测试点击我的按钮后,我试图等待一段时间,然后使用 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 中的 Scaffold 和 MaterialApp 有什么区别?
firebase - 如何使用 buildArguments 或其他任何东西在 Flutter/Fi
flutter - 如何像在 Hamilton Flutter 应用程序中一样在 Flutter 中
android - 将自定义 boxshadow 添加到 Flutter 卡