簡體   English   中英

Flutter 集成測試- go 屏幕上沒有后退按鈕時如何返回上一屏幕

[英]Flutter Integration Testing- How to go back to previous screen when no back button available on screen

當屏幕上沒有后退按鈕時,如何 go 返回上一屏幕? 附加信息:我正在嘗試對 flutter 應用程序進行自動化集成測試。 屏幕上沒有可用於 go 后退屏幕的后退按鈕。 附加信息:我正在編寫集成測試,同樣我需要 go 返回上一個屏幕。 由於設計原因,屏幕上沒有后退按鈕,我只需要通過腳本來完成。

如果測試的目的也是強調和驗證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 上按下的后退按鈕

這就是動畫包中 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

好吧,這可能有點晚了,但是有兩種可能的方法可以實現這一目標:

final backButton = find.byTooltip('Back');

await driver.tap(backButton);

要么:

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

你可以像這樣使用 ios 提供的

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

我的 emulador 默認語言環境是“en_US”,所以我使用“返回”這個詞作為工具提示,它正在工作。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM