单元测试
单元测试(又称为模块测试)是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。
通常来说,程序员每修改一次程序就会进行最少一次单元测试,在编写程序的过程中前后很可能要进行多次单元测试,以证实程序达到软件规格书要求的工作目标,没有程序错误;虽然单元测试不是什么必须的,但也不坏,这牵涉到项目管理的政策决定。
每个理想的测试案例独立于其它案例;为测试时隔离模块,经常使用stubs、mock或fake等测试马甲程序。单元测试通常由软件开发人员编写,用于确保他们所写的代码符合软件需求和遵循开发目标。它的实施方式可以是非常手动的(通过纸笔),或者是做成构建自动化的一部分。(维基百科)
iOS中的常见的单元测试框架有XCTest(OCUnit)、GHUnit、OCMock
XCTest
XCTest的前身是OCUnit,是一个集成在Xcode中的测试框架。Xcode6默认建立的工程带有XCTest。
GHUnit
GHUnit是Github上一个非常有名的开源框架,地址
GHUnit 是一个为Mac OS X 和iOS的测试框架。GHUnit导入工程中有点麻烦。
特征
1. 支持在Xcode中运行测试、跟踪断点、并直接与调试器交互
2. 从命令行运行或者使用MakeFile文件运行
3. 并行测试
4. 运行测试UI组件
5. 捕获显示测试细节
6. 通过关键字来搜索和过滤测试案例
7. 查看测试日志
8. 显示堆栈和调试信息
9.作为框架引用
10. 确定View是否发生改变(UI验证)
11. 尽快批准和记录View变化
OCMock
OCMock 是一个Objective-C实现的mock 对象。是一个开源库: 地址
OCMock 使用静态库的形式加入project。
#import <OCMock/OCMock.h>```
来导入。具体文档参见[OCMock](http://ocmock.org/)
##Kiwi
Kiwi是一个iOS平台的行为驱动开发的测试框架。为了提供一个设置和使用简单的BDD库。**[Kiwi](https://github.com/kiwi-bdd/Kiwi)**
介绍如下:[iOS开发--TDD的iOS开发初步以及Kiwi使用入门](http://onevcat.com/2014/02/ios-test-with-kiwi/)
[置换测试: Mock, Stub 和其他](http://objccn.io/issue-15-5/)
[[iOS单元测试系列]单元测试框架选型](http://zixun.github.io/blog/2015/04/11/iosdan-yuan-ce-shi-xi-lie-dan-yuan-ce-shi-kuang-jia-xuan-xing/)