iOS单元测试相关框架介绍

1 TDD

TDD是测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。

原理:是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。

优点:在任意一个开发节点都可以拿出一个使用,含少量bug并具一定功能和能够发布的产品。

缺点:增加代码量。测试代码是系统代码的两倍或更多,但是同时节省了调试程序及挑错时间。

理念:确保所有的需求都能被照顾到,在代码不断增加和重构的过程中,可以检查所有的功能是否正确。

2 第三方测试框架

1、Quick 和 Nimble

GitHub地址:https://github.com/Quick/Quick

Quick 是一个针对于Swift和Objective-C的行为驱动开发框架. 它的灵感来自于 RSpec, Specta, 和 Ginkgo.

Nimble 是一个同时适用于Swift和Objective-C语言的匹配框架.

换句话说,Quick是一个用于创建BDD测试的框架。配合Nimbl,可以为你创建更符合预期目标的测试。

项目中使用
使用CocoaPods安装 Quick 和 Nimble

2、ocMock

官网地址 http://ocmock.org

OCMock是一个用于为iOS或Mac OS X项目配置Mock测试的开源项目。

其实现思想就是根据要mock的对象的class来创建一个对应的对象,并且设置好该对象的属性和调用预定方法后的动作(例如返回一个值,调用代码块,发送消息等等),然后将其记录到一个数组中,接下来开发者主动调用该方法,最后做一个verify(验证),从而判断该方法是否被调用,或者调用过程中是否抛出异常等。

其实就是可以把它当做我们伪造的一个对象,我们给它一些预设的值之类的,然后就可以进行对应的验证了。

到OCMock的官网(http://ocmock.org/download/) 下载dmg文件,打开后里面有个iOS library文件夹。把iOS library里的文件加入到你的项目里,按这篇教程( http://ocmock.org/ios/ ) 来进行配置。

也可以直接使用CocoaPods安装

3、OHHTTPStubs

GitHub地址:https://github.com/AliSoftware/OHHTTPStubs

OHHTTPStubs是一个很好的可以加速测试和开发的工具。OHHTTPStubs可使用伪造的网络数据和模拟的缓慢网络来测试你的应用程序,从而检测你的应用程序在不佳的网络环境中的行为,并使用伪造的网络数据编写单元测试。

它可与NSURLConnection,NSURLSession,AFNetworking,Alamofire或者任意使用 Cocoa URL Loading 系统的任何网络框架一起使用。

OHHTTPStubsResponse可以指定为文件,图片,data数据,或者json对象。比较灵活

CocoaPods导入框架
OC 导入 pod 'OHHTTPStubs'
swift 导入 pod 'OHHTTPStubs/Swift'

4、Cuckoo

GitHub地址:https://github.com/Brightify/Cuckoo
Cuckoo需要用脚本预先生成Mock类,自动从产品代码生成测试所需的模拟并支持测试。它受Android Mockito的影响,并且看来编写测试的方式是相似的。

CocoaPods安装
pod "Cuckoo"

你可能感兴趣的:(iOS单元测试相关框架介绍)