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 目标的一部分的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 上的 ocunit 测试

什么是开始使用 OCUnit 进行 iPhone 单元测试的好教程?

OCUnit 是不是允许在 iPhone 模拟器上运行应用程序测试?

如何在命令行中捕获 OCUnit 的测试失败/成功?

在我的 XCode 3 上安装 OCUnit 时出现问题

如何编写 OCUnit 测试用例