У меня возникли проблемы с модульным тестированием кода центрального диспетчера с помощью встроенного фреймворка модульного тестирования Xcode, SenTestingKit. Мне удалось свести мою проблему к следующему. У меня есть модульный тест, который создает блок и пытается выполнить его на главном потоке. Однако на самом деле блок никогда не выполняется, поэтому тест зависает, поскольку это синхронная диспетчеризация.
- (void)testSample {
dispatch_sync(dispatch_get_main_queue(), ^(void) {
NSLog(@"on main thread!");
});
STFail(@"FAIL!");
}
Что именно в среде тестирования вызывает зависание?