Flutter 小部件测试使用WidgetsBinding.instance.addPostFrameCallback()的小部件

Flutter 小部件测试使用WidgetsBinding.instance.addPostFrameCallback()的小部件,flutter,flutter-test,Flutter,Flutter Test,我正试图在flatter中对一个小部件进行一个小部件测试,该小部件用于在小部件生命周期最短的时候显示一个对话框 小部件工作正常,但我不知道如何进行小部件测试,因为测试的第一个expect()是在触发此post帧之前执行的 是否要“告诉”测试等待所有post帧被调度 PD:tester.pump()、tester.pumpAndSettle()等不工作。但您知道什么。。。突然,它出现了: tester.binding.scheduleWarmUpFrame(); 运行该命令:-) 摘自此

我正试图在flatter中对一个小部件进行一个小部件测试,该小部件用于在小部件生命周期最短的时候显示一个对话框

小部件工作正常,但我不知道如何进行小部件测试,因为测试的第一个expect()是在触发此post帧之前执行的

是否要“告诉”测试等待所有post帧被调度


PD:tester.pump()、tester.pumpAndSettle()等不工作。

但您知道什么。。。突然,它出现了:

    tester.binding.scheduleWarmUpFrame();
运行该命令:-)

摘自此处:

这对我很有用:

// press button
await tester.tap(find.text("Save"));
// await the flushbar or snackbar to appear
await tester.pumpAndSettle(const Duration(seconds: 1));
// find by text or key
expect(find.text("Error saving note"), findsOneWidget);
// this prevents this error:
// A Timer is still pending even after the widget tree was disposed.
// the flushbar in my code is displayed for 5 seconds. So we wait for it to 
// go away.
await tester.pumpAndSettle(const Duration(seconds: 5));
我不知道这样做是否正确。但它是有效的。
祝你好运

我也有同样的问题,很抱歉我不知道-/