在 flutter 中测试会给出使用不包含 MediaQuery 的上下文调用的错误 MediaQuery.of()

Testing in flutter gives error MediaQuery.of() called with a context that does not contain a MediaQuery

我正在尝试快速测试登录页面的代码。这对我来说是第一次,我只是按照他们提供的模板进行操作。但是我尝试推送的任何小部件都会出错,提示 MediaQuery.of() called with a context that does not contain a MediaQuery.

我已经尝试在我的应用程序中添加不同的小部件。但是每个小部件都会出现与上面提到的相同的错误,另一方面,我的应用程序在设备上运行良好但在测试时它给出了仅抽取小部件的错误。

await tester.pumpWidget(Login());

并且登录页面是带有应用栏和正文的简单脚手架。

添加这个辅助方法:

 Widget buildTestableWidget(Widget widget) {
   return MediaQuery(data: MediaQueryData(), child: MaterialApp(home: widget));
 }

然后你可以在你的测试中使用:

 await tester.pumpWidget(buildTestableWidget(Login()));