我对 dart 和 flutter 都是新手。在一个项目中,我使用隔离从远程服务器下载一些资源。一切正常。我已经编写了一些测试,但我还想添加一个测试用例来解决网络问题。为此,我想模拟与模拟对象隔离使用的 Http.Client() 实例。为了使用依赖注入,我一直在尝试使用get_it。几个小时后,我发现我注册 http.Client() 代码的地方没有与isolate 共享,并且主isolate 不共享相同的内存。
我确信我不是第一个处理这个问题的人。因此,我要求的是更有经验的 flutter(/dart) 开发人员提供一些有关如何解决此测试问题的建议。
高度赞赏所有建议。谢谢你。
在 Dart 中,isolate 具有独立的内存空间,因此像
Http.Client()
这样的实例不能在它们之间直接共享。要测试网络问题,您可以使用工厂函数在隔离内创建 Http.Client
实例,或使用 MockClient
包中的 http/testing
设置模拟客户端。这样,您可以模拟各种响应,例如超时或服务器错误以进行测试。