VCRURLConnection
VCRURLConnection 是一个用于录制和回放 HTTP 交互的 iOS 和 OSX API,受到 VCR 的启发。
VCRURLConnection 还处于非常早期的开发阶段,所有错误报告、功能请求和一般反馈都非常受重视!
录制
[VCR start];
NSString *path = @"http://example.com/example";
NSURL *url = [NSURL URLWithString:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
// use either NSURLSession or NSURLConnection
NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request];
[task resume];
// NSURLSession makes a real network request and VCRURLConnection
// will record the request/response pair.
// once async request is complete or application is ready to exit:
[VCR save:@"/path/to/cassette.json"]; // copy the output file into your project
回放
NSURL *cassetteURL = [NSURL fileURLWithPath:@"/path/to/cassette.json"];
[VCR loadCassetteWithContentsOfURL:cassetteURL];
[VCR start];
// request an HTTP interaction that was recorded to cassette.json
NSString *path = @"http://example.com/example";
NSURL *url = [NSURL URLWithString:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
// use either NSURLSession or NSURLConnection
NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request];
[task resume];
// The cassette has a recording for this request, so no network request
// is made. Instead NSURLConnectionDelegate methods are called with the
// previously recorded response.
安装
Carthage
将以下内容添加到您的 Cartfile 中
github "dstnbrkr/VCRURLConnection"
然后运行 $ carthage update
。
请遵循Carthage的README中的最新安装说明。
手册
- 下载VCRURLConnection并尝试其中的示例应用
- 将VCRURLConnection文件夹中的文件包含到您的测试目标中
入门
- 运行一次您的测试以记录所有HTTP交互
- 将记录的json文件(由
[VCR save]
返回的文件路径)复制到您的项目中 - 后续的测试运行将使用记录的HTTP交互,而不是网络
- 所有记录存储在单个JSON文件中,您可以手动编辑此文件
许可证
VCRURLConnection遵循MIT许可证发布
联系方式
Dustin Barker
VCRURLConnection使用了以下开源组件
- SenTestCase+SRTAdditions.h 来自Square的SocketRocket