GH-Unit и ошибка «Неопределенные символы» - PullRequest
1 голос
/ 06 февраля 2010

Я использую GH-Unit для своих модульных тестов. Я настроил его в соответствии с инструкциями, но в этой строке выдается ошибка «Неопределенный символ»:

#import "GHUnit.h"
#import "ChecklistAppDelegate.h"

@interface TestAppDelegate : GHTestCase {}
@end

@implementation TestAppDelegate

- (void)testStoringProperties {
    ChecklistAppDelegate *appDelegate = [[ChecklistAppDelegate alloc] init];
}

Если я добавлю ChecklistAppDelegate к цели Tests, неопределенная ошибка символа исчезнет, ​​но я получу более 37 ошибок, по одной на каждое объявление класса Core Data в моем AppDelegate (их много). Большинство из них имеют вид expected specifier-qualifier-list before 'NSPersistentStoreCoordinator'

Я думал, что мог бы решить эту проблему, связав свою цель Tests с платформой Core Data, но это не сработало. Я также попытался #import <CoreData/CoreData.h> в своем файле AppDelegate, но это тоже не сработало.

Есть идеи? Я попытался удалить все следы модуля GH и повторно добавить его несколько раз, и он все еще не работает.


Вот ошибка из результата сборки

Undefined symbols:
  ".objc_class_name_ChecklistAppDelegate", referenced from:
      literal-pointer@__OBJC@__cls_refs@ChecklistAppDelegate in TestAppDelegate.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

Ответы [ 2 ]

0 голосов
/ 06 февраля 2010

Исправлено. Я добавил

#import <CoreData/CoreData.h>

в мой Tests_Prefix.pch файл заголовка префикса.

0 голосов
/ 06 февраля 2010
Undefined symbols:
 ".objc_class_name_ChecklistAppDelegate", referenced from:
     literal-pointer@__OBJC@__cls_refs@ChecklistAppDelegate in TestAppDelegate.o

Вам необходимо добавить ChecklistAppDelegate.m к цели тестирования.

Если я добавлю ChecklistAppDelegate к цели Tests, неопределенная ошибка символа исчезнет, ​​но я получу более 37 ошибок, по одной на каждое объявление класса Core Data в моем AppDelegate (их много). Большинство из них имеют вид, ожидаемый список спецификаторов-спецификаторов до 'NSPersistentStoreCoordinator'

Объявление классов базовых данных является задачей заголовков базовых данных. Я думаю, что вы имеете в виду что-то еще, но я не уверен, что. Пожалуйста, измените ваш вопрос, включив в него код, где именно он находится (какой файл) и ошибки.

...