flutter - 颤振从单元\小部件测试调用http请求而不进行模拟
问题描述
我有一个遵循 MVC+服务架构的应用程序。服务层为 REST API 发出 http 请求。但是,http 请求的响应会间歇性地变化,这会导致我的模型发生变化,或者我的应用程序会随机崩溃。所以为了捕捉这些 API 的变化,我想编写一些自动化测试,它们可以准确地告诉我发生了什么变化。一个示例测试用例如下:
test("login_valid", () async {
final loginData = LoginData(
email: "abc@gmail.com",
password: "123"
);
final parameters = loginData.toJson();
var json = await httpService.post(parameters);
var loginResponse = LoginResponse.fromJson(json);
expect(loginResponse.status, "OK");
});
SocketException
但是,上面的代码在运行时抛出。INTERNET
我知道当未授予权限时会引发此异常,AndroidManifest.xml
但我不知道如何为 unit\widget 测试设置此异常。
PS我不能使用mockit
或类似的框架来模拟服务层,因为重点是测试我的服务层,它没有任何业务逻辑,只提供网络集成。
任何解决方案或建议都会非常有帮助。如果有的话,我也可以使用其他方法来实现相同的意图。
解决方案
检查这里或指向那里的 gihub 问题讨论 https://timm.preetz.name/articles/http-request-flutter-test
推荐阅读
- android - Android Studio:无法编译设置文件
- c - 按位或在c中的2组字节之间
- javascript - Discord.js 错误“未定义消息”
- php - Laravel domPDF 阿拉伯字符生成 PDF 错误
- python - Google Colab can't find file
- php - 生成和划分具有文件大小限制的文件夹
- pine-script - 1sec 图表上的 tradingview pinescript 15min 数据不能使用安全函数中的可变变量作为参数
- php - 使用 PHP 回显到现有的 div
- assembly - 验证我在程序集 NASM 中的字符串中有哪个字符
- react-native - React Native - 当应用程序关闭时用户单击本地通知时如何导航