我想在 iOS 中进行单元测试。默认情况下,测试类是使用 Xcode 5 中的 XCTest 框架类创建的。我在早期版本的 iOS 中使用过 SenTestingKit。这两个框架有什么区别?XCTest 框架有什么优势。我搜索了相关文档,但没有找到。我唯一发现的是在套件中使用的接口类。任何人都可以指出我的相关资源。
问问题
10790 次
3 回答
18
Apple 的文档在测试方面明显缺乏。很遗憾,因为在 XCTest 上花五分钟让我爱不释手。因此,这里有一些您可能会觉得有用的文档。
首先,停下来观看关于测试的 WWDC 视频:https ://developer.apple.com/wwdc/videos/?include=409#409 (必须是注册开发者)
然后,阅读有关 Bots 的信息。它们是 XCTest 中真正的魔力。我目前正在设置一个运行 Mavericks Server 的 Mac Mini 环境,该环境连接到一小部分 iPod Touch、iPhone 和 iPad,它们将同时运行我的单元测试并返回报告。这该死的近乎魔法。
尽管如此,我对 SenTest 的了解还不够,无法比较两者。但我正在学习 XCTest,所以这里有一些关于我到目前为止真正挖掘的想法。
- 它已经在那里了。没有什么可下载的,您可以在制作您希望测试的对象的同时制作您的测试类对象。拉德。
- 因为它与 Xcode 的集成如此之深,您可以在排水沟中看到测试覆盖率。您还可以使用 Companion View 从源代码或测试方法的源代码中查看测试人员。此外,它将始终是最新的 - 无需等待修复与 Xcode 的集成,因为 Apple “破坏”了某些东西。
- 持续集成。机器人很神奇,而且很简单。您还可以获得 Git 托管,这是一个小的附加福利,但如果您更喜欢内部托管 Git 但不想为 GitHub Enterprise 付费,则更是如此。
而且,一些衡量的缺点:
- 缺乏文档。让我阅读标题以获取断言列表是一个大胆的举动。我毫不怀疑苹果会很快解决这个问题,但还不够快。
- 你与 Xcode 的联系更深一点。对开发来说并不是一个真正的骗局,但是编写 XCTest 脚本并不像其他选项那样优雅。
- 持续集成需要 OS X Server。如果您真的需要,它可以在同一台机器上,但即使您拥有 Mountain Lion Server,也需要 20 美元购买。我对这个一点也不苦(哈)。
我的两分钱。希望能帮助到你。我真的建议观看我链接到的那个视频——无论您是否使用 XCTest,他们都会进行实时测试创建,并为一般的单元测试提供了一个非常有说服力的案例。
于 2013-10-31T01:37:38.307 回答
2
XCTest 默认包含在 ios7 中,并与新的持续集成功能更好地集成。
https://developer.apple.com/technologies/tools/
于 2013-09-17T16:37:28.017 回答
2
于 2014-02-03T10:13:48.047 回答