繁体   English   中英

链接错误,设置GTM进行iPhone单元测试

[英]Linking Errors setting up GTM to do iPhone Unit Tests

我和我的同事一直在努力进行单元测试已有数周之久。 我们已经尝试建立SenTest,GTM和其他框架,但是我们永远都无法克服一系列的错误链接。

我现在在这里使用GTM。 我将不胜感激。

除了提供SO方面的帮助外,如果您有相关经验,我很乐意付给一名顾问。 如果您认为可以帮助我,请发送电子邮件至andrew@gaiagps.com。

  1. 我按照此处的说明进行操作: http : //code.google.com/p/google-toolbox-for-mac/wiki/iPhoneUnitTesting 我发现我还需要将文件“ GTMObjC2Runtime.h”添加到项目中。 然后,安装框架后,我可以达到预期的控制台输出:“在0.030(0.030)秒内执行了0个测试,其中0个失败(0个意外)。”

  2. 接下来,我去为我的一个类编写一个测试用例。 我创建了WebAPITest.h。 我创建了一个简单的测试,效果很好。 我刚刚验证了1 == 1。

  3. 接下来,我决定为AppDelegate.h编写一个测试。 因此,我在WebAPITest.h中添加了#import“ AppDelegate.h”,但出现了8个链接错误。 我的项目使用FBConnect,编译器抱怨找不到FBConnect文件。 为了解决这个问题,我在测试目标的构建配置中添加了FBConnect标头搜索路径,链接错误消失了。

  4. 现在是我难过的地方。 当我尝试在实现中引用AppDelegate时,出现以下链接错误:

    使用配置“调试”构建项目“ foo”的目标“ fooTest”-(2个错误)

    未定义的符号:“。objc_class_name_AppDelegate”,引用自:WebAPITest.o中的文字指针@__ OBJC @__ cls_refs @ AppDelegate ld:找不到符号collect2:ld返回1退出状态

  5. 因此,我尝试将AppDelegate添加到Test目标,但是随后它也开始想要AppDelegate的所有依赖关系,而且我猜测我不应该将数十个文件添加到单元测试目标。

知道下一步我需要做什么吗?

您的测试包确实需要访问您要测试的已编译类。 您的决定是通过将​​其直接添加到目标(是的,具有所有依赖项),链接到实现该类的库或设置测试包以使其由主机应用程序加载来实现的具有该类的实现。

此参考可能对您有用:

http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/135-Unit_Testing_Applications/unit_testing_applications.html#//apple_ref/doc/uid/TP40007959-CH20-SW3

以及来自Apple的主要单元测试文档:

http://developer.apple.com/mac/library/DOCUMENTATION/DeveloperTools/Conceptual/UnitTesting/1-Articles/CreatingTests.html#//apple_ref/doc/uid/TP40002171

查找诸如“测试主机”和“捆绑加载程序”之类的术语。

这些内容不是很容易理解,但是如果您急切地想通过它,文档最终会阐明所有内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM