XCTest优于SenTestingKit有什么优势?

sri*_*evi 24 unit-testing ios sentestingkit ios7 xcode5

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

edd*_*ger 18

Apple的文档在测试方面尤其缺乏.这是一种耻辱,因为用XCTest花了五分钟让我感到沮丧.所以,这里有一些你可能会觉得有用的文档.

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

然后,阅读Bots.它们是XCTest中真正的魔力.我目前正在建立一个运行Mavericks服务器的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更多.

并且,一些衡量标准:

  • 缺乏文档.要求我阅读断言列表的标题是一个很好的举动.我毫不怀疑Apple很快会解决这个问题,但不会很快.
  • 你更深入地与Xcode联系在一起.并不是真正的开发,但脚本XCTest并不像其他选项那样优雅.
  • 持续集成需要OS X Server.如果你真的想要它可以在同一台机器上,但即使你拥有Mountain Lion Server也需要20美元购买.我对这个(ha)一点都不苦.

我的两分钱.希望能帮助到你.我真的建议观看我链接的视频 - 他们会进行实时测试创建,并为一般的单元测试制作一个非常引人注目的案例,无论你是否使用XCTest.

  • 这些好处是由XCTest提供的,还是仅仅是Xcode 5普遍改进的测试功能的一部分?你提到的很多(所有?)事情也适用于使用Xcode 5的SenTestingKit. (4认同)

小智 2

XCTest 默认包含在 ios7 中,并与新的持续集成功能更好地集成。
https://developer.apple.com/technologies/tools/

  • 是的..信息不够。 (12认同)