ios - 在 XCode 中组织 iOS OCUnit 测试文件

标签 ios xcode unit-testing xcode4 ocunit

我正在使用 OCUnit 和 Xcode 4.2 将单元测试添加到现有的 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”文件中没有任何内容。如果是这种情况,我可以安全地删除该文件吗,因为它不包含任何测试?或者是否需要保留它以便在其他文件中运行其他测试?

最佳答案

Xcode 最初设置为对属于单元测试目标成员的文件运行所有单元测试。在您的情况下,您应该为您正在测试的每个类创建一个新的测试文件。创建新文件时,请确保将该文件添加到单元测试目标,而不是应用程序目标。 Xcode 最初将该文件添加到应用程序目标中。

您可以删除UnitTest.m文件。您创建的每个单元测试文件都包含足够的信息来运行测试。您还可以使用方案编辑器来控制 Xcode 如何运行测试。

Xcode 5 更新

Xcode 5 添加了一个测试导航器,可让您运行单个测试、运行测试类的所有测试或运行所有测试。测试导航器减少了使用方案编辑器来控制 Xcode 如何运行测试的需要。

关于ios - 在 XCode 中组织 iOS OCUnit 测试文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8324930/

相关文章:

ios - dyld : Symbol not found: _NSURLAuthenticationMethodClientCertificate when trying to run iOS app

iOS11 滚动偏移 - 过渡问题

ios - 在这个例子中使用内省(introspection)是正确的做法吗?

ios - iMessage 扩展 : Get height of compact view

ios - Google 日历 API iOS 快速入门

c# - TypeMock 隔离器 : WillThrow() bleeds across unit test boundaries?

ios - Gradle Xcode 插件 - xcodebuild 任务失败

ios - 如何将 TextView 的文本设置为通过从应用程序操作扩展接收文本创建的字符串

javascript - 是否有像 Junit for Javascript 这样的框架来测试 Node.js 中的面向对象的 javascript?

c# - 单元测试看不到我的方法