首页 > 解决方案 > 扑。如何测试集成测试没有溢出?

问题描述

我使用 flutter_driver 在 Flutter 中进行集成测试。在某些屏幕上,按钮上的文本会出现溢出错误。我想创建一个可以显示发生溢出的测试。因此,当我在一堆虚拟/真实设备上运行所有集成测试时,我可以看到 UI 没有正确定位。

标签: flutterflutter-layoutflutter-test

解决方案


不需要为此进行集成测试。小部件测试会做。

由于小部件测试在启用断言的情况下运行,tester.pumpWidget使用会溢出的小部件进行调用将引发异常并因此导致测试失败。

例如,以下测试将失败:

testWidgets('overflow', (tester) async {
  await tester.pumpWidget(Row(
    textDirection: TextDirection.ltr,
    children: <Widget>[
      // too big to fit in the default size of the row
      Container(width: 99999),
    ],
  ));
});

请注意,可以自定义小部件测试的屏幕大小。请参阅如何在不同的屏幕尺寸上测试 Flutter 小部件?

或者,我们可以将我们测试的小部件包装成Container这样的:

await tester.pumpWidget(Container(
  alignment: Alignment.center,
  width: <my screen widget>,
  height: <my screen height>,
  child: <the widget which I want to test overflow on>,
);

推荐阅读