我正在使用带有Xcode 4.2的OCUnit将单元测试添加到现有的iOS项目中。我已经成功添加了一个新的构建目标(按照这里的说明:http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/)并设置了一些简单的示例测试,以检查我是否可以运行测试并且它们按预期工作。
我的问题是添加更多测试文件以及如何组织它们。现有的代码库非常广泛,包含数百个类,我们迟早需要添加测试。显然,将所有测试放在自动生成的“UnitTests.m”文件中会很疯狂。我看到我可以使用'Objective-C测试用例类'模板添加更多文件,但我不清楚这与我添加测试目标时XCode生成的总体'UnitTest.m'有什么关系。
XCode是否只是查找测试目标的所有测试文件并运行所有测试?如果是这样,为我正在测试的每个类生成一个新的测试文件是有意义的,而在主“UnitTests.m”文件中没有任何内容。如果是这种情况,我可以安全地删除该文件,因为它不包含任何测试吗?或者是否需要保留以便在其他文件中运行其他测试?
答案 0 :(得分:5)
Xcode最初设置为运行作为单元测试目标成员的文件的所有单元测试。在您的情况下,您应该为您正在测试的每个类创建一个新的测试文件。创建新文件时,请确保将文件添加到单元测试目标,而不是应用程序目标。 Xcode最初将文件添加到应用程序目标。
您可以删除UnitTest.m文件。您创建的每个单元测试文件都包含足够的信息来运行测试。您还可以使用方案编辑器来控制Xcode如何运行测试。
Xcode 5更新
Xcode 5添加了一个测试导航器,可让您运行单个测试,运行测试类的所有测试或运行所有测试。测试导航器减少了使用方案编辑器来控制Xcode如何运行测试的需要。