辅助库,用于记录URL请求并将其本地保存(非常适合HTTP模拟中的固定值)
为什么?• OHHTTPStubs• Rec• 错误代码• 待办事项•
@Orta曾告诉我,在Skype上,他们如何将一些方式融入到他们的API团队中,以便为每个调用拥有一个“样本”JSON(我在此处进行概括),因此他们可以使用“实际”样本数据并通过提供在开发时使用“离线”模式为应用程序的支持,例如等。
遗憾的是,我在一个每年开展多个项目的公司工作,不一定总是我们能控制API开发的部分,这使得添加“样本”JSON变得不那么容易。
OHHTTPStubs
引入了OHHTTPStubs
;我开始为测试目的向我的项目中添加HTTP Stubs,并需要手动输入每个请求的URL,并将每个文件中生成的JSON保存到固定值文件夹以添加到测试用例。
作为一名工程师(更重要的一点是一个极其懒惰的人)我决定这是一个极其繁琐且缓慢的过程;那么……为什么不去自动化它呢?
这就是Rec发挥作用的地方;它是一个NSURLProtocol
,可以拦截从NSURLSession
(带有defaultSessionConfiguration
和ephemeralSessionConfiguration
)发出的每个NSURL
请求,并将自己添加为连接的代理;一旦请求成功,框架就会将其保存到应用程序的Documents
文件夹(在“Fixtures”文件夹下)。
Rec
遵循了OHHTTPStubs
的步骤并“自动”将其添加为监听器(它通过交换defaultSessionConfiguration
和ephemeralSessionConfiguration
并返回一个“预先配置”的会话配置对象来实现)。
以下是“内部”错误代码的列表
-666
:无法开始加载请求-667
:无法连接到URL-668
:无法正确将响应解析为JSON-669
:无法获取Document的目录路径-670
:无法提取请求的最后路径组件以生成文件名-671
:无法将文件保存到路径-672
: 无法从URL获取成功的响应。