【发布时间】:2011-05-18 14:26:33
【问题描述】:
我正在测试一些使用 Grand Central Dispatch 进行异步处理的代码。测试代码如下:
[object runSomeLongOperationAndDo:^{
STAssert…
}];
测试必须等待操作完成。我目前的解决方案如下所示:
__block BOOL finished = NO;
[object runSomeLongOperationAndDo:^{
STAssert…
finished = YES;
}];
while (!finished);
这看起来有点粗略,你知道更好的方法吗?我可以公开队列,然后通过调用dispatch_sync 阻止:
[object runSomeLongOperationAndDo:^{
STAssert…
}];
dispatch_sync(object.queue, ^{});
...但这可能在object 上暴露太多。
【问题讨论】:
标签: objective-c unit-testing grand-central-dispatch