XCTest优于SenTestingKit有什么优势?
我想在iOS中进行unit testing。 默认情况下,测试类是使用Xcode 5中的XCTest框架类创建的。我在早期版本的iOS中使用过SenTestingKit。 这两个框架之间有什么区别? XCTest框架有哪些优点。 我搜索相关文档,但我没有找到任何。 我找到的只是在套件中使用的接口类。 谁能指出我相关的资源。
Apple的文档在测试方面尤其缺乏。 这是一种耻辱,因为在XCTest上花了五分钟让我感到沮丧。 所以,这里有一些你可能会觉得有用的文档。
首先,停下来观看有关测试的WWDCvideo: https : //developer.apple.com/wwdc/videos/? include = 409 #409(必须是注册开发者)
然后,阅读Bots。 它们是XCTest中真正的魔力。 我目前正在建立一个运行Mavericks服务器的Mac Mini环境,该服务器连接到一小部分iPod Touch,iPhone和iPad,它们将同时运行我的unit testing并报告。 它真是太神奇了。
总而言之,我不太了解SenTest以便比较两者。 但我正在学习XCTest,所以这里有一些关于我到目前为止正在挖掘它的想法。
- 它已经存在了。 没有什么可下载的,您可以在制作要测试的对象的同时制作测试类对象。 拉德。
- 因为它与Xcode的集成非常深入,所以您可以在排水沟中看到测试覆盖率。 您还可以使用Companion View从源查看测试人员,或从测试人员方法查看源。 此外,它将永远是最新的 – 没有等待修复与Xcode的集成,因为苹果“打破”了一些东西。
- 持续集成。 机器人只是神奇的,它们很容易。 你也得到Git托管,这是一个小的边缘特权,但如果你更喜欢你的Git内部托管但不想支付GitHub Enterprise更多。
并且,一些衡量标准:
- 缺乏文档。 要求我阅读断言列表的标题是一个很好的举动。 我毫不怀疑Apple很快会解决这个问题,但不会很快。
- 你更深入地与Xcode联系在一起。 对于开发来说并不是真正的骗局,但脚本XCTest并不像其他选项那样优雅。
- 持续集成需要OS X Server。 如果你真的想要它可以在同一台机器上,但即使你拥有Mountain Lion Server也需要20美元购买。 我对这个(ha)一点都不苦。
我的两分钱。 希望能帮助到你。 我真的建议观看我链接的video – 他们会进行实时测试创建,并为一般的unit testing做一个非常引人注目的案例,无论你是否使用XCTest。
XCTest默认包含在ios7中,并且与新的持续集成function更好地集成。
https://developer.apple.com/technologies/tools/
看来优势目前很少,但随着时间的推移,这将有希望改变,所以启动社区维基来记录一些:
-
XCTAssert…
系列宏可以处理你XCTAssert…
format
参数(用于评论测试应该通过的原因)。 这对于在编辑器中保持简单测试(从测试本身显而易见的是它在做什么)清理是很方便的。STAssert…
要求我们将format
参数设为nil
或其他一些。 - 有一个通用的
XCTAssert()
宏,它比把一些类型的检查放入STAssertTrue
感觉更整洁。