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
...