Модульный тест NSOperation?
Я хотел бы проверить NSOperation
подкласс. Я пытался сделать это в моем SenTestCase
подкласс:
- (void)setUp {
[super setUp];
_importQueue = [[NSOperationQueue alloc] init];
[_importQueue setMaxConcurrentOperationCount:1];
[_importQueue waitUntilAllOperationsAreFinished];
}
- (void)tearDown {
[_importQueue release];
[super tearDown];
}
- (void)testSomeImport {
ImportOperation *op = [[ImportOperation alloc] initWithFile:...];
[_importQueue addOperation:op];
[op setDelegate:self];
[op release];
}
- (void)opDidFinish:(ImportOperation *)op { // ImportOperation delegate method
// Not getting called
}
Но тесты заканчиваются до того, как NSOperation
закончил выполнение, несмотря на уточнение waitUntilAllOperationsAreFinished
,
Любые идеи о том, как предотвратить завершение теста до завершения моей операции?
1 ответ
Решение
Вам нужно позвонить waitUntilAllOperationsAreFinished
после добавления операции в очередь, а не в setUp
,