颤振测试:等待一段时间

时间:2018-03-30 20:40:08

标签: dart flutter

我试着点击我的按钮后等待一段时间,然后用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)奇怪的行为?

1 个答案:

答案 0 :(得分:11)

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

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

为什么会发生这种情况的较长答案与颤振测试环境有关。为了确保测试是可靠的,即使面对时变动画,环境也会使用来自`package:quiver的FakeAsync等实用程序来尽可能多地减少异步行为。