24

我想在 iOS 中进行单元测试。默认情况下,测试类是使用 Xcode 5 中的 XCTest 框架类创建的。我在早期版本的 iOS 中使用过 SenTestingKit。这两个框架有什么区别?XCTest 框架有什么优势。我搜索了相关文档,但没有找到。我唯一发现的是在套件中使用的接口类。任何人都可以指出我的相关资源。

4

3 回答 3

18

Apple 的文档在测试方面明显缺乏。很遗憾,因为在 XCTest 上花五分钟让我爱不释手。因此,这里有一些您可能会觉得有用的文档。

首先,停下来观看关于测试的 WWDC 视频:https ://developer.apple.com/wwdc/videos/?include=409#409 (必须是注册开发者)

然后,阅读有关 Bots 的信息。它们是 XCTest 中真正的魔力。我目前正在设置一个运行 Mavericks Server 的 Mac Mini 环境,该环境连接到一小部分 iPod Touch、iPhone 和 iPad,它们将同时运行我的单元测试并返回报告。这该死的近乎魔法。

https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_guide-continuous_integration/000-About_Continuous_Integration/about_continuous_integration.html#//apple_ref/doc/uid/TP40013292

尽管如此,我对 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 回答