有没有办法在 Flutter 单元测试中测试 AppLifecycleState 的变化?

Is there a way to test an AppLifecycleState change in a Flutter unit test?

当我的应用移至后台时 (AppLifecycleState.paused),我的应用会将用户首选项写入本地文件,我想为此行为编写一个测试。

有没有办法在单元测试中模仿这个?或者这是需要作为集成测试完成的事情吗?

您可以调用 binding.handleAppLifecycleStateChanged 在单元测试中伪造应用程序进出前台。

tester.binding.handleAppLifecycleStateChanged 绝对是正确的测试方法。

例如:主页上监听应用程序生命周期的 Statefull 小部件

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    if (state == AppLifecycleState.paused) {
      pushLoginPage(context);
    }
  }

如果你想测试这个,你必须先paused,然后resumed以确保Flutter导航。