2012-07-10 36 views
3

需要为以下代码进行单元测试,dispatch_async表示代码不会被应用逻辑序列执行,关于如何使其及时运行的任何想法?像dispatch_async这样的代码的单元测试。

谢谢。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{ 
     [AdTracker dosomething]; 
    }); 

回答

2

http://www.mikeash.com/pyblog/friday-qa-2011-07-22-writing-unit-tests.html

+ (BOOL)waitFor2:(finishBlock)block { 
NSTimeInterval timeoutInSeconds = 10.0; 
NSDate* giveUpDate = [NSDate dateWithTimeIntervalSinceNow:timeoutInSeconds]; 

while (!block() && ([giveUpDate timeIntervalSinceNow] > 0)) { 
    NSDate *stopDate = [NSDate dateWithTimeIntervalSinceNow:1.0]; 
    [[NSRunLoop currentRunLoop] runUntilDate:stopDate]; // un-blocking. 
    DLog(@"+++++ %@", [NSDate date]); 
} 

return block(); 

}