我想在iOS中进行单元测试。默认情况下,测试类是使用Xcode 5中的XCTest框架类创建的。我在早期版本的iOS中使用过SenTestingKit。这两个框架之间有什么区别? XCTest框架有哪些优点。我搜索相关文档,但我没有找到任何。我发现的只是套件中使用的接口类。任何人都可以向我指出相关资源。
答案 0 :(得分:18)
Apple的文档在测试方面尤其缺乏。这是一种耻辱,因为用XCTest花了五分钟让我感到沮丧。所以,这里有一些你可能会觉得有用的文档。
首先,停止并观看有关测试的WWDC视频:https://developer.apple.com/wwdc/videos/?include=409#409(必须是注册开发人员)
然后,阅读Bots。它们是XCTest中真正的魔力。我目前正在建立一个运行Mavericks服务器的Mac Mini环境,该服务器连接到一小部分iPod Touch,iPhone和iPad,它们将同时运行我的单元测试并报告回来。它真是太神奇了。
所有这一切,我不太了解SenTest以便比较两者。但是我正在学习XCTest,所以这里有一些关于我到目前为止正在挖掘它的想法。
还有一些衡量标准:
我的两分钱。希望能帮助到你。我真的建议观看我链接的视频 - 他们会进行实时测试创建,并为一般的单元测试制作一个非常引人注目的案例,无论你是否使用XCTest。
答案 1 :(得分:2)
XCTest默认包含在ios7中,并且与新的持续集成功能更好地集成 https://developer.apple.com/technologies/tools/
答案 2 :(得分:2)
目前似乎优势很少,但希望随着时间的推移而改变,所以启动社区维基来记录一些:
XCTAssert…
系列宏可以完全忽略format
参数(用于评论测试应该通过的原因)。这对于在编辑器中保持简单测试(从测试本身显而易见的是它在做什么)清理是很方便的。 STAssert…
要求我们制作format
参数nil
或其他一些参数。XCTAssert()
宏,感觉比把某些类型的支票放入STAssertTrue
更整洁。