单元测试NSOperation?

时间:2011-07-11 17:28:43

标签: iphone ios unit-testing nsoperation nsoperationqueue

我想测试一个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 个答案:

答案 0 :(得分:14)

将操作添加到队列后,您需要调用waitUntilAllOperationsAreFinished,而不是setUp

相关问题