2011-03-30 1 views
1

서버 응답에 따라 API 클라이언트의 동작을 선언하는 동기 요청을 테스트하는 방법을 궁금합니다. 서버와 독립적으로 실행하는 것이 좋습니다 (테스트가 빨리 실행되고 인터넷 연결에 의존하지 않으므로). 제 응답을 반환하고 싶습니다. 요청이 동기식이기 때문에이 작업을 수행하는 방법을 모르겠습니다.Google Toolbox Mac : 테스트 [NSURLConnection sendSynchronousRequest : ...]

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

나는 "사과에 의해 뿜어 져 나오는"것을 의미한다고 생각합니다. 흥미로운 것 같아, 내가 보게. 그것은 비록 테스트 도움이 될지 모르겠다. – Julien

답변

0

질문의 첫 번째 문장을 완전히 이해하지 못했습니다. 거의 확실하게 비동기로 만들고 싶다고 말할 수 있습니다. 동기 요청이 UI를 차단하고 너무 오래 걸리면 iOS가 앱을 강제 종료합니다. 비동기 요청 콜백은 성공/실패를 검토 한 다음 동일한 응답 또는 수정 된 위임을 호출하거나 이전에 처리기를 설치했다는 알림을 게시 한 다음 원하는대로 응답을 교환합니다.

+0

앱의 모든 API 부분은 이미 별도의 스레드에서 실행되므로 새 API를 실행하는 것은 유용하지 않습니다. – Julien