我正在使用GH-Unit进行单元测试。我按照说明进行了设置,但是我在这一行上收到了“Undefined Symbol”错误:
#import "GHUnit.h"
#import "ChecklistAppDelegate.h"
@interface TestAppDelegate : GHTestCase {}
@end
@implementation TestAppDelegate
- (void)testStoringProperties {
ChecklistAppDelegate *appDelegate = [[ChecklistAppDelegate alloc] init];
}
如果我将ChecklistAppDelegate
添加到Tests
目标,则未定义的符号错误消失,但我得到37个错误,一个用于AppDelegate中Core Data类的每个声明(有很多错误) )。其中大部分都是expected specifier-qualifier-list before 'NSPersistentStoreCoordinator'
我想我可以通过将我的Tests
目标与核心数据框架相关联来解决这个问题,但这不起作用。我还在我的AppDelegate文件中尝试了#import <CoreData/CoreData.h>
,但这也没有用。
有什么想法吗?我已经尝试删除GH-Unit的所有痕迹并重新添加几次,但它仍然无效。
以下是构建结果中的错误
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
答案 0 :(得分:0)
Undefined symbols: ".objc_class_name_ChecklistAppDelegate", referenced from: literal-pointer@__OBJC@__cls_refs@ChecklistAppDelegate in TestAppDelegate.o
您需要将ChecklistAppDelegate.m添加到测试目标。
如果我将ChecklistAppDelegate添加到Tests目标,那么未定义的符号错误就会消失,但是我得到了37个以上的错误,一个是我的AppDelegate中每个Core Data类的声明(有很多)。其中大多数都是'NSPersistentStoreCoordinator'之前的形式,期望的说明符 - 限定符列表
声明Core Data类是Core Data标头的工作。我认为你的意思是别的,但我不确定是什么。请编辑您的问题以包含代码,确切位置(哪个文件)和错误。
答案 1 :(得分:0)
修正了它。我添加了
#import <CoreData/CoreData.h>
到我的Tests_Prefix.pch
前缀头文件。