hpi*_*que 5 macos unit-testing nsurlcache ios nsurlsession
我想为使用共享的方法编写单元测试NSURLSession
,特别是NSURLSessionDataTask
下载数据.基本上,我希望目标方法接收模拟响应/数据,而无需互联网连接.
嘲笑这些组件的不那么不引人注目的方式是什么?我正在考虑NSURLCache
使用模拟响应和数据填充,但我觉得这假设了太多的工作方式NSURLSession
和NSURLSessionDataTask
工作.还有其他建议吗?
我过去常常OHHTTPStubs
模仿回应.
您只需在测试之前注册存根(例如,自述文件):
[OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) {
return [request.URL.host isEqualToString:@"mywebservice.com"];
} withStubResponse:^OHHTTPStubsResponse*(NSURLRequest *request) {
// Stub it with our "wsresponse.json" stub file
return [OHHTTPStubsResponse responseWithFileAtPath:OHPathForFileInBundle(@"wsresponse.json",nil)
statusCode:200 headers:@{@"Content-Type":@"text/json"}];
}];
Run Code Online (Sandbox Code Playgroud)
在内部,它用于NSURLProtocol
拦截请求并将其存根.
归档时间: |
|
查看次数: |
2596 次 |
最近记录: |