OCUnit for iPhone App - 将所有.m文件设置为UnitTest Target的一部分

时间:2010-07-27 21:11:54

标签: iphone unit-testing ocunit

Hy大家,

我有两个目标:MyApp和UnitTests

MyApp包含两个类:ClassA和ClassB。 ClassA有一个使用ClassB方法的方法“getSomeNumber”。

UnitTest是一个“单元测试包”,在“组和文件”部分,我有一个名为“UnitTests”的文件夹,我在其中创建了一个“MyAppTest”类。

MyAppTest Class有以下方法:

-(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”,现在我需要将“ClassA.m”设置为“UnitTest”目标的一部分。 当我建立我有错误

**"_OBJC_CLASS_$_ClassB", referenced from:**

所以我需要将“ClassB.m”添加到“UnitTest”taget并且它可以工作。

如果ClassA使用使用数千个类的ClassC,会发生什么? 我有这个问题,我需要在“UnitTest”目标中包含数千个类。

我认为将整个 MyApp项目包含到UnitTest目标中可能是更好的解决方案或配置。

谢谢大家! 问候。

1 个答案:

答案 0 :(得分:0)

如果您对数千个类有依赖关系,我建议您将这些类组织到可以重用的库中。这样,您可以将目标(用于测试或其他方式)链接到单个库,而不是包含大量单独的代码文件。

如果您要定位iOS设备,则需要创建静态库,因为无法在设备上动态链接到自定义库。