我试着点击我的按钮后等待一段时间,然后用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)奇怪的行为?
答案 0 :(得分:11)
因此,从一个更简单的答案开始,在颤动测试中等待一段时间的正确方法是使用tester.pump
。
await tester.pump(new Duration(milliseconds: 50));
为什么会发生这种情况的较长答案与颤振测试环境有关。为了确保测试是可靠的,即使面对时变动画,环境也会使用来自`package:quiver的FakeAsync等实用程序来尽可能多地减少异步行为。