1

我正在使用 GH-Unit 进行单元测试。我已经按照说明进行了设置,但在这一行出现“未定义符号”错误:

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

@interface TestAppDelegate : GHTestCase {}
@end

@implementation TestAppDelegate

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

如果我添加ChecklistAppDelegateTests目标,未定义的符号错误就会消失,但我会收到 37 个以上的错误,我的 AppDelegate 中的 Core Data 类的每个声明都有一个错误(有很多)。他们中的大多数是形式,expected specifier-qualifier-list before 'NSPersistentStoreCoordinator'

我想我可以通过将我的Tests目标与 Core Data 框架链接来解决这个问题,但这没有用。我也尝试#import <CoreData/CoreData.h>了我的 AppDelegate 文件,但这也不起作用。

有任何想法吗?我已经尝试删除所有 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
4

2 回答 2

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 标头的工作。我认为你的意思是别的,但我不确定是什么。请编辑您的问题以包含代码、代码的确切位置(哪个文件)以及错误。

于 2010-02-06T04:52:12.693 回答
0

修复。我添加了

#import <CoreData/CoreData.h>

到我的Tests_Prefix.pch前缀头文件。

于 2010-02-06T12:28:17.853 回答