Модульное тестирование iPhone: символы не найдены при вызове пользовательского кода
Я пытаюсь настроить модульное тестирование для своего приложения для iPhone. Я следовал заДокументация по модульному тестированию Apple и это проснулось нормально, но как только я добавил другой класс в этот тест, я получаю следующую ошибку:
"_OBJC_CLASS_$_RootViewController", referenced from:
__objc_classrefs__DATA@0 in AppDelegateTests.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
Само приложение представляет собой базовое навигационное приложение с основными данными для хранения данных.
Модульный тест выглядит следующим образом:
#import <SenTestingKit/SenTestingKit.h>
#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>
#import "HSStabilityAppAppDelegate.h"
#import "RootViewController.h"
@interface AppDelegateTests : SenTestCase {
HSStabilityAppAppDelegate *appDelegate;
}
@end
@implementation AppDelegateTests
// all code under test must be linked into the Unit Test bundle
#pragma mark -
#pragma mark Set up and tearDown
#if APPLICATION_TESTS
- (void) setUp {
appDelegate = (HSStabilityAppAppDelegate *)[[UIApplication sharedApplication] delegate];
STAssertNotNil(appDelegate, @"Cannot find the application delegate.");
}
- (void) tearDown {
[appDelegate release];
}
#else
#endif
#pragma mark -
#pragma mark Tests
#if APPLICATION_TESTS
- (void) testRootViewIsOnTop {
id topViewControllerClass = [[appDelegate.navigationController topViewController] class];
id rootViewControllerClass = [RootViewController class];
STAssertEquals(topViewControllerClass, rootViewControllerClass, @"Root view controller was not the top class");
}
#endif
@end
Если я закомментирую строку id rootViewControllerClass, то программа будет работать правильно. Кроме того, это происходит только при сборке с целью устройства, у меня не возникает проблем при сборке с помощью симулятора (возможно, учитывая, что тесты приложения не работают на симуляторе).
Кто-нибудь может помочь решить эту основную и очень бешеную проблему?