如何测试容器的 width/height 大小

How to test container's width/height size

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

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

但是。不幸的是,如果我输入 widget.width,它会说 getter 宽度没有为 class 容器定义。

尝试:

widget.constraints.widthConstraints();

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,
);