Objective c 测试目标的extern NSString*常量nil

Objective c 测试目标的extern NSString*常量nil,objective-c,xcode,xctest,Objective C,Xcode,Xctest,我最近在Xcode 5.1中添加了一个测试目标(使用XTest)。一切似乎都很正常,我可以使用主应用程序中的所有类等,但我应用程序中的一些外部NSString*常量(即在.h文件中声明,在.m文件中定义)在测试代码中使用时为零。我尝试将.m文件包含在测试目标的编译源代码中,这修复了它们为零的问题,但产生了其他问题(在该.m文件中定义的类随后以副本形式存在,即测试目标具有该类的不同类实例)。我正在运行iOS 7.1的iPhone 5S上进行测试 非常感谢您的帮助。您目前在.m文件的顶部定义了真正的

我最近在Xcode 5.1中添加了一个测试目标(使用XTest)。一切似乎都很正常,我可以使用主应用程序中的所有类等,但我应用程序中的一些外部
NSString*
常量(即在.h文件中声明,在.m文件中定义)在测试代码中使用时为零。我尝试将.m文件包含在测试目标的编译源代码中,这修复了它们为零的问题,但产生了其他问题(在该.m文件中定义的类随后以副本形式存在,即测试目标具有该类的不同类实例)。我正在运行iOS 7.1的iPhone 5S上进行测试


非常感谢您的帮助。

您目前在.m文件的顶部定义了真正的NSString对象,这些对象独立于“
@interface
”类别声明和某些对象的“
@implementation
”代码之外

为什么不创建一个新的.m文件,该文件不包含“
@implementation
”,而只包含NSString常量


然后将新的.m文件(没有关联类)作为编译文件添加到应用程序和测试目标中。

IMHO,extern NSString*定义通常不可测试(因此需要重构)。它们是我需要在测试中使用的错误键,以查看是否忽略了正确的错误。是的,我将在它们自己的文件中分离常量,尽管我想知道是否有更好的方法来执行此操作,是否我做错了什么。