我的测试在测试文件主函数的第 1 行初始化了小部件绑定
TestWidgetsFlutterBinding.ensureInitialized();
由于它具有上述行,因此使用网络请求在测试文件夹外测试 bloc/some function/repository 将引发 http 错误。所以补充说:
HttpOverrides.global = null;
很少有 http 请求在 try catch 块中,该块处理带有错误代码 101 的 SocketException,即设备处于脱机或已连接且没有活动的 Internet 连接且无法访问服务器。
上面的覆盖删除了所有 httpexceptions,但我喜欢用代码 101 捕获 SocketException。有没有其他方法来处理上述情况?
概括:
- 运行小部件测试
- 在我们的测试文件夹/文件之外使用 http 请求运行函数/类/块
- 覆盖案例 2 的 http 错误代码 400,但如果它在 try catch bloc 内,则允许捕获其他异常,并使测试在应用程序中正常运行(如颤动运行)。