我想知道如何测试同步请求以根据服务器响应断言API客户端的行为。 因为独立于服务器是一个好习惯(所以测试运行速度快,不依赖于互联网连接),我想回复自己的回复。我不知道怎么做,因为请求是同步的:
NSURL *url = [self URL];
NSData *postData = [self postData];
NSMutableURLRequest *downloadRequest = [NSMutableURLRequest requestWithURL:url];
[downloadRequest setHTTPMethod:@"POST"];
[downloadRequest setHTTPBody:postData];
[downloadRequest setTimeoutInterval:10.0];
return downloadRequest;
NSURLResponse *response;
NSError *error = nil;
NSData *urlData = [NSURLConnection sendSynchronousRequest:downloadRequest
returningResponse:&response
error:&error];
您对如何做到这一点有什么建议吗? 我不知道是否可以覆盖NSURLConnection,或者我是否应该更改我的代码,仅用于测试目的。
答案 0 :(得分:0)
我不完全理解问题的第一句话。我可以说你几乎肯定想让它异步。同步请求将阻止UI,如果需要太长时间,iOS将强制退出您的应用程序。然后,您的异步请求回调可以查看成功/失败,然后调用具有相同响应或修改过的响应的委托,或者发布您之前已安装处理程序的通知,再次根据需要交换响应。< / p>