有没有办法在Flutter单元测试中测试AppLifecycleState更改?

时间:2017-03-17 21:36:16

标签: unit-testing flutter

当应用程序移动到后台时,我的应用程序将用户首选项写入本地文件(AppLifecycleState.paused),并且我想为此行为编写测试。

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

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

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

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