使用GH-Unit对iOS应用进行单元测试
单元测试的目的
- 保证代码的正确性
- 支持未来的代码重构
基础环境:
- 使用苹果系统的电脑
- XCode
GH-Unit是一个强大的单元测试框架,由Gabriel Handford开发,使用GH-Unit进行单元测试需要进行一些配置。
- 新建一个项目并添加一个测试目标(Target)
我这里新建了一个“Window-basedApplication”,新建完成后先尝试“BuildandRun”保证程序能正常启动,在Targets上右击选择“Add-NewTarget…”
Target的名称可以命名为Tests或者类似的名字。
下载GH-Unit框架并添加必要的框架到项目
下载地址:https://github.com/downloads/gabriel/gh-unit/GHUnit-0.4.28.zip
解压缩后拖到XCode中,选择拷贝源代码到项目,并且目标选择为Tests
打开Tests这个目标进行配置,设置目标依赖到第一个目标,添加CoreGraphics、Foundation、UIKit这几个框架。检查“FrameworkSearchPaths”
检查“FrameworkSearchPaths”这个参数是否指向GHUnitiOS.framework的父目录,一般默认已是正确的。针对测试目标的“OtherLinkerFlags”添加“-Objc”,“-all_load”参数修改Tests-Info.plist文件
修改里面的“Mainnibfilebasename”参数,将默认为“MainWindow”的值清空。添加GHUnitIOSTestMain.m(http://github.com/gabriel/gh-unit/blob/master/Project-IPhone/GHUnitIOSTestMain.m)
下载后拖到OtherSources中,选择拷贝到项目,并且选择目标为测试项目。(可选)创建Tests_Prefix.pch
从原来的GHUnitExample_Prefix.pch拷贝一个文件并重命名为Tests_Prefix.pch,并使用XCode添加到项目中。
修改Tests_Prefix.pch针对移动设备平台的话添加#import<GHUnitIOS/GHUnit.h>,添加后不用在创建的测试代码中引用库。
最后修改Tests目标的配置文件,搜索GCC_Prefix修改为Tests_Prefix.pch。(可选)设置Makefile文件创建测试
为了便于源代码管理在项目目录下建立Tests,并导入到XCode中。
在Tests组下添加一个测试类,用来测试配置是否正确,命名为“SetupTests”,从NSObject继承,不生成头文件。运行测试
选择Tests目标“Build and Run”,便可运行iPhone模拟器开始单元测试,若碰到问题请检查Tests-Info.plist配置是否正确。参考资料:
http://gabriel.github.com/gh-unit/_installing.html
http://4arrowsmedia.com/2010/09/ghunit-setup/