【发布时间】:2020-07-07 11:11:43
【问题描述】:
我有一个遵循 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。我知道当AndroidManifest.xml 中未提供INTERNET 权限时会引发此异常,但我不知道如何为单元\小部件测试设置此异常。
附:我无法使用mockit 或类似框架模拟服务层,因为重点是测试我的服务层,它没有任何业务逻辑,只提供网络集成。
任何解决方案或建议都会非常有帮助。如果有的话,我也可以使用其他方法来实现相同的意图。
【问题讨论】:
-
你能分享堆栈跟踪吗?
标签: flutter integration-testing flutter-test