Flutter 集成测试 - 当屏幕上没有可用后退按钮时如何返回上一屏幕

问题描述 投票:0回答:6

屏幕无后退按钮时如何返回上一屏幕? 附加信息:我正在尝试对 flutter 应用程序进行自动化集成测试。屏幕上没有后退按钮,我可以使用它返回屏幕。 附加信息:我正在编写集成测试,因此我需要返回到上一个屏幕。由于设计原因,屏幕上没有后退按钮,我只需要通过脚本来完成。

flutter dart flutter-test
6个回答
8
投票

这就是动画包中的 OpenContainers 对我有用的内容:

  final NavigatorState navigator = tester.state(find.byType(Navigator));
  navigator.pop();
  await tester.pump();

在flutter包的测试中使用:

https://github.com/flutter/packages/blob/63040337424f345452a5e07632774e6585329ac0/packages/animations/test/open_container_test.dart#L234


2
投票

如果测试的目的是强调并验证

WillPopScope
回调,则可以使用以下方法:

final dynamic widgetsAppState = _._tester.state(find.byType(WidgetsApp));
await widgetsAppState.didPopRoute();

这在 Flutter 官方存储库中用于测试:https://github.com/flutter/flutter/blob/master/packages/flutter/test/material/will_pop_test.dart

请注意,此方法也适用于模拟 Android 上按下 后退按钮。


1
投票

final backButton = find.byTooltip('Back'); await driver.tap(backButton);

或:

await driver.tap(find.pageBack());



1
投票

final backButton = find.byTooltip("Back"); await tester.tap(backButton); await tester.pumpAndSettle();



0
投票

theme: ThemeData( pageTransitionsTheme: PageTransitionsTheme( builders: { TargetPlatform.android: CupertinoPageTransitionsBuilder(), TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), } ) ),



0
投票

... if(Platform.isAndroid) { await Process.run('input', <String>['keyevent', 'KEYCODE_BACK'] ); } ...

希望对你有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.