我想在iOS中进行单元测试。默认情况下,使用Xcode 5中的XCTest框架类创建测试类。我在iOS的早期版本中使用了SenTestingKit。这两个框架之间有什么区别? XCTest框架的优点是什么?我在Google上搜索了相关文档,但没有找到任何相关文档。我发现的唯一东西是在套件内使用的接口(interface)类。谁能指出我的相关资源。

最佳答案

关于测试,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的集成,因为苹果“打破了”某些东西。
  • 持续集成。机器人很神奇,而且非常简单。您还可以获得Git托管,这是一个很小的附加值,但是如果您更喜欢内部托管Git但又不想为GitHub Enterprise付费,则可以这样做。

  • 并且,有一些不利的措施:
  • 缺少文档。要求我阅读声明列表的 header 是一个招式。我毫不怀疑,苹果会尽快解决此问题,但还不能很快解决。
  • 您与Xcode的联系更加紧密。这实际上不是开发的弊端,但是编写XCTest脚本并不像其他选项那么优雅。
  • 持续集成需要OS X Server。如果您确实想要,它可以在同一台机器上,但是即使您拥有Mountain Lion Server,也要花20美元。我对此一点都不讨厌(公顷)。

  • 我的两分钱。希望能帮助到你。我真的建议您观看我链接到的视频-无论您是否使用XCTest,它们都可以进行实时测试创建,并为单元测试提供一个非常有说服力的案例。

    关于ios - XCTest优于SenTestingKit的优点是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18854852/

    10-11 04:23