4
我寫了一個OCUnit單元測試用例,它依靠外部web服務來完成。我知道這本身是有爭議的,但是我絕對想要在測試中包含Web服務(無論如何它都在內部服務器上運行)。爲什麼NSURLConnection不能在iOS OCUnit測試用例中工作?
顯然,當作爲SenTestCase的一部分運行時,NSURLConnection無法啓動。該連接不會在所有行開始:
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self startImmediately:YES];
的委託方法沒有被調用。幾乎相同的代碼通常在OCUnit之外運行。
什麼是OCUnit運行時環境阻止它運行?
這不是測試在請求返回前完成:我有NSCondition鎖來處理請求的異步性質。我也嘗試刪除這些,只是在運行循環上旋轉。測試用例繼續執行,但NSURLConnection永遠不會啓動。
如果可能,我寧願不將我的測試遷移到另一個單元測試框架。
我不知道NSCondition如何幫助,除非在另一個線程中運行NSURLConnection。你如何運行運行循環? – 2013-02-22 22:35:55
請參閱http://stackoverflow.com/questions/14868519/tdd-unit-testing-asynchronous-calls/14877427#14877427 – 2013-02-24 23:34:05
@Jon Reid:這不是我的問題的解決方案。問題不在於等待ASynchronous任務完成,而是NSURLConnection無法啓動。 – 2013-02-25 17:36:50