如何测试容器的 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
。假设 minWidth
和 maxWidth
在您的情况下相等,请考虑使用:
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,
);
我正在尝试测试容器的宽度和高度。我正在尝试做这样的事情:
expect(
find.byWidgetPredicate((Widget widget) =>
widget is Container && widget.width == 48),
findsOneWidget);
但是。不幸的是,如果我输入 widget.width
,它会说 getter 宽度没有为 class 容器定义。
尝试:
widget.constraints.widthConstraints();
Container
中没有 属性。相反,它包含一个 BoxConstraints
,其最小和最大宽度为 Container
。假设 minWidth
和 maxWidth
在您的情况下相等,请考虑使用:
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,
);