我编写了一个 OCUnit 单元测试用例,它依赖于外部 Web 服务来完成。我知道这本身就存在争议,但我绝对希望将 Web 服务包含在测试中(无论如何它都在内部服务器上运行)。
显然,当作为 SenTestCase 的一部分运行时,NSURLConnection 无法启动。连接根本不是由以下行启动的:
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self startImmediately:YES];
没有调用任何委托方法。几乎相同的代码通常在 OCUnit 之外运行。
阻止它运行的 OCUnit 运行时环境是什么?
并不是说测试在请求返回之前完成:我有 NSCondition 锁来处理请求的异步性质。我也尝试过删除这些并在运行循环上旋转。测试用例继续执行,但 NSURLConnection 永远不会启动。
如果可能的话,我宁愿不将我的测试迁移到另一个单元测试框架。