您的位置:首页 > 移动开发 > IOS开发

iOS测试与集成工具总结

2015-06-08 00:04 295 查看
Giovanni Lodi是来自澳大利亚的一名iOS开发者,最近他总结了iOS平台上单元测试、验收测试的工具,分析了它们的优缺点,以及支持iOS
App的持续集成平台。


苹果官方工具

XCTest是苹果在iOS
7和Xcode5引入的一个简单而强大的测试框架,它的测试编写起来非常简单,并且遵循xUnit风格。XCTest的优点是与Xcode深度集成,有专门的Test导航栏,但因为受限于官方测试API,因此功能不是很丰富。

UIAutomation是苹果提供的UI自动化测试框架。测试使用Javascript编写,但是使用起来有些乏味。

苹果对持续集成的支持,则体现在Xcode
Bots上。我们能配置Xcode Bots来设置触发器,来替我们运行测试或自动将代码上传到服务器上。


单元测试的开源库

在开源社区里,大家对新事物接受得很快,一些好的东西也经常病毒性的扩散。iOS开源社区也是这样,比如,它的测试编写趋势是使用xSpec风格,这是从Ruby测试库RSpec借鉴而来的。

Kiwi是对XCTest的一个完整替代,使用xSpec风格编写测试。Kiwi带有自己的一套工具集,包括expectationsmocksstubs,甚至还支持异步测试

Specta与Kiwi功能相似,但在架构上非常不同。Kiwi注重功能的整合,而Specta则注重模块化。它本身只专注于运行测试,而将模拟、匹配等功能交给第三方。下面这些一些开源测试组件,它们能与Specta和Kiwi框架搭配使用:

Expecta:匹配程序框架。

OCHamcrest:匹配程序框架。

OCMock:模拟测试框架。

OCMockito:模拟测试框架。

OHTTPStubs:模拟网络请求的库,基于block的语法来匹配URL。

Nocilla:模拟网络请求的库,使用链式API。

Quick是一个使用Swift开发的新测试框架,对测试使用Swift编写的App非常友好。它还有一个Nimble库用于编写匹配模式。


验收测试的开源库

KIF(Keep It Functional)是用Objective-C编写的用户界面测试框架。KIF tester使用了私有API来了解App中的视图层级。缺点是运行较慢。

Subliminal是另一款与XCTest集成的框架。与KIF不同的是,它基于UIAutomation编写,旨在对开发者隐藏UIAutomation中一些复杂的细节。不过它最后更新日期是2014年2月,可能已停止更新。

Calabash是跨平台开发工具Xamarin推出的一款测试工具。它使用BDD风格来编写验收测试。它的优点是支持跨平台(需使用不同的库),声明式的测试风格非常易于读写。缺点是不够稳定并且运行速度慢。


持续集成平台

这里列出的持续集成工具都是基于云平台的,因为自己搭建类似Jenkins这样的持续集成环境代价高昂。

下面的列表是目前支持iOS的主流CI平台。

Travis CI

Ship.io

Sauce Labs

Bitrise

Testdroid

它们间的不同在于价格、配置工作,以及上手难易程度。

当然,这篇文章提到的工具并不是全部,如果你对iOS的测试和集成感兴趣,可以到这里留言和作者交流。

参考链接:

Unit Testing

Xcode Server and Continuous
Integration Guide

KIF

The state of IOS testing in 2015

Doc:KIF
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: