我有一个类似的小部件测试:
testWidgets('Widget test', (WidgetTester tester) async {
provideMockedNetworkImages(() async {
final widget = MyWidget();
await WidgetTestFunctions.pumpWidgetTest(
tester,
widget,
);
// ....
await tester.tap(find.byType(MyWidget));
await tester.pump(new Duration(milliseconds: 3000));
// ....
expect(widget.value, myValue);
});
});
以及小部件的 on-tap 方法的以下实现:
_onButtonPressed() async {
await animationController.forward();
setState(() {
// ...
// Calls method that changes the widget value.
});
}
我遇到的问题是,在animationController.forward()
测试中调用该方法后,该setState
部分未执行。我应该如何等待此方法正确完成?在应用程序运行时,这部分代码被正确调用。
似乎await tester.pump(new Duration(milliseconds: 3000));
无法正常工作,动画的持续时间为 1500 毫秒,您可以看到泵的持续时间是双倍的。