Почему ложное утверждение в асинхронном тесте в GHUnit приводит к сбою приложения, а не просто к провалу теста?

На этот вопрос очень мало просмотров и пока нет ответов. Если у вас есть предложение, что изменить в этом вопросе, чтобы получить больше глазных яблок, я был бы рад их услышать. Ура!

я используюGHAsyncTestCase протестировать обычайNSOperation мой. Я устанавливаю тестовый случай в качестве делегата на объект операции, и я звонюdidFinishAsyncOperation в главном потоке, когда это будет сделано.

Когда утверждение не выполняется, оно генерирует исключение, которое должно быть перехвачено тестовым примером, чтобы сделать тест «неудачным». Но вместо этого ожидаемого поведения мое приложение отменяется Xcode, как только утверждение не выполняется.

*** Завершение работы приложения из-за необработанного исключения «GHTestFailureException», причина: «НЕТ» должно быть ИСТИНА. Это должно вызвать неудачный тест, но вместо этого вылетает мое приложение ».

Я явно делаю что-то не так. Кто может сказать мне?

@interface TestServiceAPI : GHAsyncTestCase
@end

@implementation TestServiceAPI

    - (BOOL)shouldRunOnMainThread
    {
        return YES;
    }

    - (void)testAsyncOperation
    {
        [self prepare];

        MyOperation *op = [[[MyOperation alloc] init] autorelease];

        op.delegate = self; // delegate method is called on the main thread.

        [self.operationQueue addOperation:op];

        [self waitForStatus:kGHUnitWaitStatusSuccess timeout:1.0];
    }

    - (void)didFinishAsyncOperation
    {
        GHAssertTrue(NO, @"This should trigger a failed test, but crashes my app instead.");

        [self notify:kGHUnitWaitStatusSuccess forSelector:@selector(testAsyncOperation)];
    }

@end

Ответы на вопрос(4)

Ваш ответ на вопрос