【iOS测试】白盒测试框架的选取

2015-07-09   出处: 搜狗测试  作/译者: NY

工欲善其事,必先利其器。

选取一套优秀的白盒测试框架组合,无论对于我们的白盒测试效率还是质量,都有很大的帮助。那么我们应该怎样选取呢?这里编者简单对当下比较流行的iOS单元+集成测试框架进行对比,并介绍一种个人感觉很优秀的测试框架的搭配。


单元测试框架的选取


现在比较流行的就属Apple自带的XCTest、第三方的GHUnit以及BDD类型的框架如:Kiwi等,那么他们各有什么优缺点呢?


XCTest:我们之前的文章详细介绍过这个框架。它的优/缺点主要有以下几种:

优点:

    • 与Xcode深度集成,环境搭建极其简单。

    • 学习资料、文档较多。

    • 框架非常稳定,不会出现意外的崩溃情况。

    缺点:

    • 测试代码可读性不如BDD框架。

    • 原生框架的功能比较少,需要搭配OCMock等框架使用。


GHUnit:

    • 集成度不如XCTest,安装麻烦。

    • 有自己的GUI界面(对单元测试来讲,GUI界面其实没多大用)

    • XCTest框架的缺点它基本都有。


BDD框架Kiwi:

优点:

    • 将测试语言写成类似自然语言,测试代码可读性较高。



    • 框架中包含mock和expecta断言框架的全部功能。

缺点:

    • 与XCTest框架相比,不够稳定,bug较多。

    • 安装较复杂,学习资料少。

    • 不能单条case执行。

    考虑到与Xcode集成度、框架易用性、框架稳定性、可扩展性等因素,我们最终选择了Apple自带的XCTest框架。



Mock框架的选取


由于上面我们选择了XCTest这个单元测试框架,势必要为其搭配一个支持mock功能的框架。在这里我们使用的是OCMock这款mock框架,主要考虑到以下几点:

    • OCMock环境搭建简单,与XCTest兼容较好

    • OCMock的API较多且相对友好,功能丰富。

    • OCMock教程丰富且版本迭代很快。

详细的教程可参考:

http://www.ocmock.org/




断言扩展框架的选取


其实对于XCTest这个框架,在Xcode6添加支持异步测试的API后,断言方法已经非常丰富了,基本可以满足我们的测试需求。如果还要对其进行扩展的话,推荐OCHamcrest这款框架,它的扩展性较好,且与XCTest兼容度很高。




集成测试框架的选取


这里说到集成测试框架,其实是在单元测试框架基础上,加入了一些模拟用户操作的API,我们在这里选择的是KIF这款框架,具体的环境搭建可参考:https://github.com/kif-framework/KIF,这个框架功能丰富,由于开源扩展性较高,我们可以自己添加一些API。



结论

我们在项目中使用的是:

XCTest+OCMock+OChamcrest+KIF

的组合,个人感觉这几款框架的组合是最适合iOS白盒测试的搭配之一。


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
479° /4792 人阅读/0 条评论 发表评论

登录 后发表评论