在flutter中进行测试会产生错误,MediaQuery.of()使用不包含MediaQuery的上下文进行调用

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (160)

我试图在flutter中测试登录页面的代码。这是我的第一次,我只是按照他们提供的模板。但是我尝试推送的任何小部件都会出现错误,说MediaQuery.of()使用不包含MediaQuery的上下文调用。

我通过在我的应用程序中抽取不同的小部件来尝试。但是每个小部件都给出了与上面提到的相同的错误,另一方面,我的应用程序在设备上正常工作但是在测试时它给出了仅仅抽取小部件的错误。

await tester.pumpWidget(Login());

登录页面是简单的支架与appbar和正文。

提问于
用户回答回答于

添加此辅助方法:

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

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

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

扫码关注云+社区

领取腾讯云代金券