OCUnit for iPhone App - 将所有 .m 文件设置为 UnitTest 目标的一部分
Posted
技术标签:
【中文标题】OCUnit for iPhone App - 将所有 .m 文件设置为 UnitTest 目标的一部分【英文标题】:OCUnit for iPhone App - Set all .m files as part of UnitTest Target 【发布时间】:2010-07-27 21:11:54 【问题描述】:大家好,
我有两个目标:MyApp 和 UnitTests
MyApp 包含两个类:ClassA 和 ClassB。 ClassA 有一个使用 ClassB 方法的方法“getSomeNumber”。
UnitTest 是一个“单元测试包”,在“组和文件”部分我有一个名为“UnitTests”的文件夹,我在其中创建了一个“MyAppTest”类。
MyAppTest 类有以下方法:
-(void)testSomething
ClassA *cA = [[ClassA alloc] init];
int x = [cA getSomeNumber];
[cA release];
STAssertEquals(1, x, @"The number is not equal to 1");
我导入了“ClassA.h”,现在我需要设置“UnitTest”目标的“ClassA.m”部分。 当我构建时出现错误
**"_OBJC_CLASS_$_ClassB", referenced from:**
所以我需要将“ClassB.m”添加到“UnitTest”标签中,它可以工作。
如果 ClassA 使用使用数千个类的 ClassC 会发生什么? 我有这个问题,我需要在“UnitTest”目标中包含数千个类。
我认为将我的整个 MyApp 项目 包含到 UnitTest 目标中应该是一个更好的解决方案或配置。
谢谢大家! 问候。
【问题讨论】:
【参考方案1】:如果您依赖于数千个类,我建议您将这些类组织到可以重用的库中。这样,您可以将目标(用于测试或其他)链接到单个库,而不是包含大量单独的代码文件。
如果您的目标是 ios 设备,则需要创建静态库,因为在设备上无法动态链接到自定义库。
【讨论】:
谢谢亚当。我会尝试找出如何做到这一点。问候。以上是关于OCUnit for iPhone App - 将所有 .m 文件设置为 UnitTest 目标的一部分的主要内容,如果未能解决你的问题,请参考以下文章
什么是开始使用 OCUnit 进行 iPhone 单元测试的好教程?