Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么';iOS OCUnit测试用例中的NSURL连接工作?_Ios_Nsurlconnection_Ocunit - Fatal编程技术网

为什么';iOS OCUnit测试用例中的NSURL连接工作?

为什么';iOS OCUnit测试用例中的NSURL连接工作?,ios,nsurlconnection,ocunit,Ios,Nsurlconnection,Ocunit,我已经编写了一个OCUnit单元测试用例,它依赖于外部web服务来完成。我知道这本身是有争议的,但我确实希望在测试中包含web服务(它无论如何都在内部服务器上运行) 显然,NSURLConnection在作为SenTestCase的一部分运行时无法启动。线路根本没有启动连接: NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self startImmediatel

我已经编写了一个OCUnit单元测试用例,它依赖于外部web服务来完成。我知道这本身是有争议的,但我确实希望在测试中包含web服务(它无论如何都在内部服务器上运行)

显然,NSURLConnection在作为SenTestCase的一部分运行时无法启动。线路根本没有启动连接:

NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self startImmediately:YES];
没有调用任何委托方法。几乎相同的代码通常在OCUnit之外运行

什么是OCUnit运行时环境阻止了它的运行

并不是在请求返回之前测试就完成了:我有NSCondition锁来处理请求的异步性质。我也尝试过移除这些,只是在运行循环中旋转。测试用例继续执行,但NSURLConnection从未启动


如果可能的话,我宁愿不将我的测试迁移到另一个单元测试框架。

我有完全相同的问题,我使用

 [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:30]];

我以前使用过NSCondition,但我认为它可能会锁定NSUrlConnection的线程。

我不确定NSCondition有何帮助,除非在另一个线程中运行NSUrlConnection。你是如何运行run循环的?请看@Jon Reid:这不是我问题的解决方案。问题不是等待异步任务完成,而是NSURLConnection无法启动。@TC:NSCondition锁只是在依赖NSURLConnection有机会完成(甚至启动)之前阻止当前线程退出测试。