我正在使用Google Toolbox for Mac中提供的单元测试工具,我想要对涉及NSURLConnections的一些代码进行单元测试。我相信如果我想要能够做到这一点,我需要设置自己的NSRunLoop。
设置这样的运行循环的正确方法是什么?
答案 0 :(得分:0)
我能想到的唯一原因就是你想要对实际的异步连接进行功能测试。这将非常脆弱,并且会减慢测试包的速度。
更好的方法是编写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
...