2011-03-30 81 views
1

我想知道如何測試一個同步請求來聲明API客戶端的行爲取決於服務器的響應。 由於獨立於服務器是一個很好的做法(所以測試運行速度快,不依賴於互聯網連接),我想返回自己的響應。我不知道如何做到這一點,因爲該請求是同步的:谷歌工具箱的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 2011-03-30 07:12:07

回答

0

我不完全理解問題的第一句話。我可以說,你幾乎肯定希望使它異步。同步請求會阻止用戶界面,如果時間太長,iOS會強制退出您的應用。然後,您的異步請求回調可以檢查成功/失敗,然後使用相同的響應或修改的委託調用委託,或者發佈您之前安裝處理程序的通知,再次交換響應或不按照您的意願。

+0

應用程序的所有API部分已經在單獨的線程中運行,因此運行新的應用程序並不是很有用。 – Julien 2011-03-30 07:25:18