FlutterDriver:使用Android后退按钮



我有一个适用于Android的移动应用程序,其中包含多个页面,目前正在尝试为它编写简单的集成测试...

问题是我的应用程序只使用内部 Android 后退手势,我没有后退按钮或类似的东西。

是否有可能以某种方式告诉FlutterDriver回到一页?(模拟安卓内部后退按钮?像这样:

driver.goPageBack()

非常感谢。:)

在活动代码中尝试此操作。

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.YOUR_ACTIVITY);
assert getSupportActionBar() != null;   //null check
getSupportActionBar().setDisplayHomeAsUpEnabled(true);   //show back button
}
@Override
public boolean onSupportNavigateUp() {
finish();
return true;
}

在 Flutter 存储库中,有一个测试通过平台通道发送消息来模拟硬件后退按钮,如下所示:

final ByteData message = const JSONMethodCodec().encodeMethodCall(const MethodCall('popRoute'));
await ServicesBinding.instance!.defaultBinaryMessenger.handlePlatformMessage('flutter/navigation', message, (_) { });

https://github.com/flutter/flutter/blob/6688e63f68ebba0919a5fe3c8f8432bd8a65f81b/packages/flutter/test/widgets/router_test.dart#L725-L726

我能找到的最接近的东西是一个后退按钮拦截器的包,它有一个方法BackButtonInterceptor.popRoute()用于模拟后退按钮按下的测试:https://pub.dev/packages/back_button_interceptor

相关内容

  • 没有找到相关文章

最新更新