У меня есть модуль модульного тестирования, полученный из SenTestCase
. Я хотел бы иметь метод модульного теста, который бы загружал производный документ UIDocument
, который я ранее сохранял в изолированной программной среде приложения. Обратите внимание, что этот тест предназначен для локальной загрузки документа (iCloud не настроен). Я знаю, что openWithCompletionHandler
работает асинхронно, поэтому я понимаю, что это никогда не сработает, как только тестовая функция выйдет из стека. Ниже приведен код для указания моего намерения (конечно, это не работает):
-(void)testLoadingDocument{
...
MyDocument *document = [[MyDocument alloc] initWithFileURL:destUrl];
STAssertNotNil(document, @"Document is nil");
NSLog(@"LOAD: %@", document.fileURL);
[document openWithCompletionHandler:^(BOOL success) {
NSLog(@"openWithCompletionHandler success = %@", success);
if (success) {
// document.packet will be filled by loadFromContents
STAssertNotNil(document.packet, @"document.packet is nil.");
}
}];
}
У меня вопрос, есть ли способ протестировать openWithCompletionHandler
в рамках модульного тестирования? Я не против, если мне придется выполнять всю операцию загрузки документа синхронно в блоке кода. Поскольку это тестовый код, я подумал, что он будет приемлемым в отличие от кода, который должен выполняться асинхронно на устройстве.
Большое спасибо заранее.