1

我想知道如何测试同步请求以根据服务器响应断言 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,或者我是否应该更改我的代码,只是为了测试目的。

4

1 回答 1

0

我不完全理解问题的第一句话。我可以说你几乎肯定想让它异步。同步请求会阻塞 UI,如果时间过长,iOS 将强制退出您的应用程序。然后,您的异步请求回调可以查看成功/失败,然后调用具有相同响应或修改响应的委托,或者发布您之前安装处理程序的通知,再次交换响应或不按照您的意愿。

于 2011-03-30T07:07:15.933 回答