扑。集成测试如何测试没有溢出?

时间:2019-04-27 05:42:19

标签: flutter flutter-layout flutter-test

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

1 个答案:

答案 0 :(得分:2)

无需为此进行集成测试。窗口小部件测试即可。

由于小部件测试在启用断言的情况下运行,因此使用会溢出的小部件调用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),
    ],
  ));
});

请注意,可以自定义窗口小部件测试的屏幕尺寸。参见How to test Flutter widgets on different screen sizes?

或者,我们可以将经过测试的窗口小部件包装到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>,
);