我正在为Xcode 5中的项目设置单元测试。在单元测试中,我触发一些将构建并向服务器发送HTTP请求的事件。即使我看到发送请求并接收响应(通过Charles Web Proxy),NSURLConnectionDelegate或NSURLConnectionDataDelegate中的任何代码似乎都没有执行,例如
– connection:didReceiveResponse:
– connection:didReceiveData:
我知道有很多关于单元测试异步代码的问题,但是我关心为什么我的HTTP请求被发送并接收响应但是我的委托在单元测试期间没有执行回调。在异步操作有时间完成之前,我确保测试没有完成执行。
感谢。
答案 0 :(得分:0)
使用一些辅助方法包装您的网络代码并模拟它。您不希望在单元测试中点击网络,因为:
a)它会减慢你的单元测试
b)它会引入不稳定性(例如:网络或服务器发生故障)
一般情况下,您希望您的单元测试可重复,并将网络引入等式只会让您头疼。获取一些好内容的样子和一些不良内容(例如:404错误或您的应用可能遇到的其他情况)的示例。将这些数据文件放入单元测试项目中,然后让伪造的网络代码返回数据文件,而不是发出网络请求。