带后退按钮的 Flutter 测试 WillPopScope

Luc*_*res 11 testing flutter flutter-test

在我的主页小部件上,当用户点击系统后退按钮时,它会通过 WillPopScope 显示确认对话框小部件。我想测试这个对话框,但我不知道如何按测试文件上的后退按钮。

Sta*_*tan 6

我遇到了同样的问题,但我的应用程序中没有后退按钮。我想测试一下android系统的后退按钮。我就是这样做的。也许这对遇到和我同样问题的人有帮助。

testWidgets("test onWillPop",(WidgetTester tester) async {
    bool willPopCalled = false;
    await tester.pumpWidget(
      MaterialApp(
        home: Scaffold(
          body: WillPopScope(
            onWillPop: () async {
              willPopCalled = true;
              return false;
            },
            child: Container(),
          ),
        ),
      ),
    );

    final dynamic widgetsAppState = tester.state(find.byType(WidgetsApp));
    await widgetsAppState.didPopRoute();
    await tester.pump();

    expect(willPopCalled, true);
});
Run Code Online (Sandbox Code Playgroud)

灵感来源:https ://github.com/flutter/flutter/blob/master/packages/flutter/test/material/will_pop_test.dart