0
我正在使用Google Toolbox for Mac中提供的單元測試工具,我想單元測試一些涉及NSURLConnections的代碼。我相信我需要設置我自己的NSRunLoop,如果我想能夠做到這一點。如何正確設置RunLoop以便單元測試NSURLConnection?
什麼是設置這樣一個運行循環的正確方法?
我正在使用Google Toolbox for Mac中提供的單元測試工具,我想單元測試一些涉及NSURLConnections的代碼。我相信我需要設置我自己的NSRunLoop,如果我想能夠做到這一點。如何正確設置RunLoop以便單元測試NSURLConnection?
什麼是設置這樣一個運行循環的正確方法?
我能想到這樣做的唯一原因是如果你想做一個實際的異步連接的功能測試。這將會非常脆弱,並且會減慢測試包的速度。
更好的辦法是寫你的NSURLConnection's delegate methods實現的單元測試,像connection:didFinishLoading:(成功案例)和connection:didFailWithError:(錯誤例)
我一般設置樣品響應值,並驗證我的委託處理它們正確。例如:
NSString *responseJSON = @"{\"remove\": [123,432], \"new\": [1,2]}";
NSData *responseBytes = [responseJSON dataUsingEncoding:NSUTF8StringEncoding];
// in requestHandler, data would have been set by calls to connection:didReceiveData:
[requestHandler setData:responseBytes];
[requestHandler connectionDidFinishLoading:nil];
// set expectations here for what you'll do with the response
...