如何测试容器的宽度/高度尺寸

时间:2019-06-11 12:15:40

标签: testing flutter containers size

我正在尝试测试容器的宽度和高度。我正在尝试做这样的事情:

expect(
        find.byWidgetPredicate((Widget widget) =>
            widget is Container  && widget.width == 48),
        findsOneWidget);

但是。不幸的是,如果我输入widget.width,它将说未为Container类定义吸气宽度。

2 个答案:

答案 0 :(得分:1)

尝试:

widget.constraints.widthConstraints();

答案 1 :(得分:1)

Container中没有这样的属性。相反,它包含一个BoxConstraints,其最小和最大宽度为Container。假设minWidthmaxWidth相等,请考虑使用:

expect(
  find.byWidgetPredicate((Widget widget) {
    if (widget is Container) {
      BoxConstraints width = widget.constraints.widthConstraints();
      return (width.minWidth == width.maxWidth) && (width.minWidth == 48);
    } else {
      return false;
    }
  }),
  findsOneWidget,
);

高度:

expect(
  find.byWidgetPredicate((Widget widget) {
    if (widget is Container) {
      BoxConstraints height = widget.constraints.heightConstraints();
      return (height.minHeight == height.maxHeight) && (height.minHeight == 48);
    } else {
      return false;
    }
  }),
  findsOneWidget,
);