【发布时间】:2020-12-11 04:47:23
【问题描述】:
由于flutter的测试环境没有模拟器这样的系统状态栏,所以我想在顶部使用MediaQuery添加填充。
这是我的测试代码:
void main() {
testWidgets('MediaQuery padding test', (WidgetTester tester) async {
const double statusBarHeight = 24.0;
await tester.pumpWidget(
MaterialApp(
home: MediaQuery(
data: const MediaQueryData(
viewInsets: EdgeInsets.only(top: statusBarHeight),
),
child: Scaffold(
appBar: AppBar(
title: const Text('PopupMenu Test'),
),
),
),
),
);
expect(find.byType(AppBar), findsOneWidget);
expect(tester.getTopLeft(find.byType(AppBar)).dy, windowPaddingTop);
});
}
由于我使用MediaQueryData.viewInsets 添加了顶部填充的24.0,我预计AppBar 左上y 轴为24.0,但结果为零。
我也尝试过使用viewPadding 而不是viewInsets 进行测试,但结果相同。
我想知道我的测试中没有应用顶部填充的原因,以及如何解决这个问题。我将不胜感激任何帮助。谢谢。
【问题讨论】:
-
只是好奇,你到底想在那里测试什么?
标签: flutter dart flutter-test widget-test-flutter