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

问题:运行小部件测试 (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 或更高版本上发生过这种情况。)

以上是Flutter小部件测试Finder失败,因为小部件超出了渲染树的边界的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>