【发布时间】:2013-09-22 04:29:13
【问题描述】:
我想在 iOS 中进行单元测试。默认情况下,测试类是使用 Xcode 5 中的 XCTest 框架类创建的。我在早期版本的 iOS 中使用过 SenTestingKit。这两个框架有什么区别? XCTest 框架有什么优势。我搜索了相关文档,但没有找到。我唯一发现的是在套件中使用的接口类。谁能指点我相关的资源。
【问题讨论】:
标签: ios unit-testing ios7 xcode5 sentestingkit
我想在 iOS 中进行单元测试。默认情况下,测试类是使用 Xcode 5 中的 XCTest 框架类创建的。我在早期版本的 iOS 中使用过 SenTestingKit。这两个框架有什么区别? XCTest 框架有什么优势。我搜索了相关文档,但没有找到。我唯一发现的是在套件中使用的接口类。谁能指点我相关的资源。
【问题讨论】:
标签: ios unit-testing ios7 xcode5 sentestingkit
Apple 的文档在测试方面明显缺乏。很遗憾,因为在 XCTest 上花五分钟让我爱不释手。因此,这里有一些您可能会觉得有用的文档。
首先,停下来观看关于测试的 WWDC 视频:https://developer.apple.com/wwdc/videos/?include=409#409(必须是注册开发者)
然后,阅读有关 Bot 的信息。它们是 XCTest 中真正的魔力。我目前正在设置一个运行 Mavericks Server 的 Mac Mini 环境,该环境连接到一小部分 iPod Touch、iPhone 和 iPad,它们将同时运行我的单元测试并返回报告。这该死的近乎魔法。
话虽如此,我对 SenTest 的了解还不够,无法比较两者。但是我正在学习 XCTest,所以这里有一些关于我到目前为止真正挖掘的想法。
还有一些缺点:
我的两分钱。希望能帮助到你。我真的建议观看我链接到的那个视频——不管你是否使用 XCTest,他们都会进行实时测试创建,并为一般的单元测试提供了一个非常有说服力的案例。
【讨论】:
XCTest 默认包含在 ios7 中,并与新的持续集成功能更好地集成。
https://developer.apple.com/technologies/tools/
【讨论】:
目前看来优势很少,但希望随着时间的推移而改变,所以开始一个社区 wiki 来记录一些:
XCTAssert… 系列宏可以处理您完全省略 format 参数(用于注释为什么测试应该通过)。这对于在编辑器中保持简单测试(从测试本身很明显)保持清洁非常方便。 STAssert… 要求我们使用 format 参数 nil 或类似的参数。XCTAssert() 宏,感觉比将某些类型的检查绑定到STAssertTrue 更简洁。【讨论】: