Flutter 小部件测试 Finder 失败,因为小部件超出了渲染树的边界

Tom*_*Cox 7 flutter-test

问题:运行小部件测试 (flutter_test) 时,什么控制“渲染树”的边界?

我问是因为我在非常基本的按钮上遇到错误,它无法找到小部件,因为它的垂直偏移超出了“渲染树”的边界,似乎固定在 800x600。

我收到消息:

警告:使用 finder 调用 tap()“恰好是一个带有文本“更多信息”的小部件(忽略后台小部件):Text(“更多信息”,依赖项:[MediaQuery,DefaultTextStyle])”派生了一个偏移量(偏移(400.0, 641.8) ) 不会在指定的小部件上进行测试。也许小部件实际上不在屏幕上,或者另一个小部件正在遮挡它,或者小部件无法接收指针事件。事实上,Offset(400.0, 641.8) 超出了渲染树根的边界,Size(800.0, 600.0)。 finder对应这个RenderBox:RenderParagraph#1b6b1relayoutBoundary=up27那个offset的hit test结果是:HitTestResult(HitTestEntry#b18dd(RenderView#408c3), HitTestEntry#a2393()) #0 WidgetController._getElementPoint (package:flutter_test/ /controller.dart:953:25) #1 WidgetController.getCenter (package:flutter_test/src/controller.dart:836:12) #2 WidgetController.tap (package:flutter_test/src/controller.dart:271:18) # 3 主要。(file:///Users/tommy/Repos/surveyapp/survey/test/widget_test.dart:99:18)

该错误消息中渲染树的大小为 800 x 600。(不确定如何设置或为什么。我很好奇它正好是 800x600?所以,它被设置在某个地方。是因为我有一个web 项目,并且在运行测试时出于某种原因默认为该大小?)。在测试中找不到偏移高度超过 600 的任何小部件。该屏幕在 iOS 模拟器和 Flutter web 下的 Chrome 上运行良好。当您使用 devtools、widget Inspector 时,没有任何布局问题。它只是一个带有祖先列、填充、中心、安全区域和脚手架的按钮,作为简单的有状态小部件页面的一部分。

(我在 Flutter 2.12 或更高版本上发生过这种情况。)

Tah*_*iel 21

在测试过程中点击按钮时我遇到了同样的问题。

我不知道如何更改 800x600 大小,但我设法找到一种滚动到按钮的方法,感谢这个答案/sf/answers/4759352811/

这是最终的代码:

final Finder buttonToTap = find.byKey(const Key('keyOfTheButton'));

await tester.dragUntilVisible(
  buttonToTap, // what you want to find
  find.byType(SingleChildScrollView), // widget you want to scroll
  const Offset(0, 50), // delta to move
);
await tester.tap(buttonToTap);
await tester.pump();
Run Code Online (Sandbox Code Playgroud)


小智 11

通过使用以下代码片段为我解决了这个问题

await tester.ensureVisible(find.byKey(Key(key)));
await tester.pumpAndSettle();
Run Code Online (Sandbox Code Playgroud)


gei*_*aos 1

注意:这个答案并没有回答有关 800x600 原因的问题,而是解决其他 googlers 的问题。

我不知道为什么会发生这种情况(我最好的猜测是在测试中也模拟了一些启动动画),但是添加await tester.pumpAndSettle()似乎可以解决问题(强化了这是由某些动画引起的假设)。

不幸的是,我在 Flutter GitHub 存储库中找不到有关该主题的任何问题。

总而言之,我认为问题不是由 800x600 限制引起的,而是由其他原因引起的。


归档时间:

查看次数:

755 次

最近记录:

4 年,10 月 前