【发布时间】:2014-02-26 23:12:58
【问题描述】:
我在 Xcode 5 中为我的项目设置单元测试。在单元测试中,我触发了一些事件,这些事件将构建并向服务器发送 HTTP 请求。即使我看到请求正在发送并接收响应(通过 Charles Web 代理),但似乎没有来自 NSURLConnectionDelegate 或 NSURLConnectionDataDelegate 的任何代码正在执行,例如
– connection:didReceiveResponse:
– connection:didReceiveData:
我知道已经有很多关于单元测试异步代码的问题,但我担心为什么我的 HTTP 请求被发送并接收响应,但我的委托在单元测试期间不执行回调。我已经确保在异步操作有时间完成之前测试没有完成执行。
谢谢。
【问题讨论】:
-
一个可能的原因是您的委托被安排在与 主线程(这是默认设置)关联的运行循环上,并且您的测试方法也将在主线程 - 一个经典的死锁。您可以通过显式调用运行循环来解决此问题,但需要考虑一些细微之处。
-
很酷,有道理,谢谢。把这个作为答案,我会选择它。
-
“承诺”是什么意思?
-
ohps - 评论错误... :) 我指的是这个问题:stackoverflow.com/questions/22055279/… 您当然可以检查我评论中的链接是否也对您有帮助;)
标签: objective-c xcode unit-testing