如何在自动化测试中模拟 Flutter 状态恢复?

How do you simulate Flutter state restoration inside an automated test?

我有一个小部件,它使用状态恢复并在 restoreState 方法中执行一些额外的逻辑。我想测试这个逻辑,所以我想知道是否有一种方法可以从 Flutter 测试中触发状态恢复。

我可以使用“不保留活动”使用 Android 模拟器手动测试逻辑,这将在应用程序重新启动时触发 restoreState,但我想以自动化方式进行测试。

这可以通过使用小部件测试(An Introduction to Widget testing—通过 Flutter)来实现。在自动化测试中,Flutter应用程序可以使用WidgetTesterclass.

中的实例方法restartAndRestore()强制重启并恢复其状态。

例如:

testWidgets('Description of the test', (WidgetTester tester) async {
  await tester.pumpWidget(MyWidget());
  // modify the state of the app
  await tester.restartAndRestore(); // restoreState gets called here
  // verify the custom logic in restoreState executed successfully
});