我正在为一个iOS应用程序使用Swift,并使用Alamofire来执行HTTP请求。
我想编写单元测试来覆盖我的功能,但是我在处理由Alamofire执行的HTTP请求时遇到了困难。我正在使用Nocilla (导入桥接标头)来尝试存根我的HTTP请求,但是在测试中似乎永远无法实现对我的HTTP请求的回调。
我想知道是否有人曾经在测试套件中成功地处理过针对Alamofire的HTTP请求?
谢谢!
发布于 2015-02-26 17:46:09
没有,但这是我用于单元测试HTTP请求的通用模式(特别是调用REST )。我已经成功地将它用于阿拉莫火和AFNetworking。
Service)底层网络API (Alamofire,AFNetworking,或者仅仅是纯iOS API)。Service通常是无状态的,负责对我的应用程序进行“更好”的调用。Service通常与我试图使用的REST密切相关。例如,如果我使用REST,允许我发布到Person集合,那么我就会有一个API,比如Service.PostPerson、Service.GetPerson等等。Service并通常使用inversion of control创建Service。UnitTestService,以便我的类最终使用UnitTestService实例而不是Service实例。UnitTestService通常根据配置返回硬编码的JSON响应。因此,在上面的示例中,我将为Service.PostPerson提供一个硬编码的JSON响应。我使用了许多技巧来完成这个任务:
ServiceProtocol,Service和UnitTestService都实现了Service。这些闭包完成了真正的工作,您可以提供不同的闭包,这取决于您是连接到Internet还是模拟它。因为我有一些函数式编程背景,所以我喜欢后者。但这两种技术都有效。
https://stackoverflow.com/questions/28748677
复制相似问题