ios单元测试之GHUnit
2015-08-11 23:45
323 查看
1、同样创建一个测试的工程,
2、通过cocoaPod来下载GHUnit框架,或者到github上下载,因为这个框架是开源的第三方框架。同时添加QuartCore.framework(或者添加:GHUnitios.framework框架)。
3、在项目的Build Setting 中国搜索other linker Flags,并将它的值设置为“-ObjC-all_load”,这个表示连接外面oc框架在编译之后。
4、修改一下启动的入口文件(即为:main.m 函数):不是启动我们常用的代理文件,而是我们框架中的代理类。
5、创建myTest文件进行测试:写入代码:
6、执行,它和OCUnit有点不同,他是直接运行结果的测试。
结果:
简单的测试完成。
不过这个方法似乎现在很少用了,因为Xcode中原本的OCUnit现在变成了XCTestCase,这个功能已经比较全面和好用。
扩展:
-ObjC
这个flag告诉链接器把库中定义的Objective-C类和Category都加载进来。这样编译之后的app会变大(因为加载了其他的objc代码进来)。但是如果静态库中有类和category的话只有加入这个flag才行。
-all_load
这个flag是专门处理-ObjC的一个bug的。用了-ObjC以后,如果类库中只有category没有类的时候这些category还是加载不进来。变通方法就是加入-all_load或者-force-load。-all_load会强制链接器把目标文件都加载进来,即使没有objc代码。-force_load在xcode3.2后可用。但是-force_load后面必须跟一个只想静态库的路径。
还有一个开发工具就是GTM了,它是一个google主导的开发并开源的一款Mac和ios的单元测试工具,已经很久没有更新了。里面有辅助的单元测试的mockgong工具和持续集成工具。(了解,ios已经很少用了)
2、通过cocoaPod来下载GHUnit框架,或者到github上下载,因为这个框架是开源的第三方框架。同时添加QuartCore.framework(或者添加:GHUnitios.framework框架)。
3、在项目的Build Setting 中国搜索other linker Flags,并将它的值设置为“-ObjC-all_load”,这个表示连接外面oc框架在编译之后。
4、修改一下启动的入口文件(即为:main.m 函数):不是启动我们常用的代理文件,而是我们框架中的代理类。
5、创建myTest文件进行测试:写入代码:
6、执行,它和OCUnit有点不同,他是直接运行结果的测试。
结果:
简单的测试完成。
不过这个方法似乎现在很少用了,因为Xcode中原本的OCUnit现在变成了XCTestCase,这个功能已经比较全面和好用。
扩展:
-ObjC
这个flag告诉链接器把库中定义的Objective-C类和Category都加载进来。这样编译之后的app会变大(因为加载了其他的objc代码进来)。但是如果静态库中有类和category的话只有加入这个flag才行。
-all_load
这个flag是专门处理-ObjC的一个bug的。用了-ObjC以后,如果类库中只有category没有类的时候这些category还是加载不进来。变通方法就是加入-all_load或者-force-load。-all_load会强制链接器把目标文件都加载进来,即使没有objc代码。-force_load在xcode3.2后可用。但是-force_load后面必须跟一个只想静态库的路径。
还有一个开发工具就是GTM了,它是一个google主导的开发并开源的一款Mac和ios的单元测试工具,已经很久没有更新了。里面有辅助的单元测试的mockgong工具和持续集成工具。(了解,ios已经很少用了)
相关文章推荐
- ios的单元测试OCUnit以及更新了之后的XCTestCase
- iOS 内存管理总结
- ios平台的一些特性
- IOS Q&A __weak typeof(self) weakSelf = self 是什么意思?
- 软件测试、ios中的测试概念以及步骤
- IOS九宫格
- IOS 30多个iOS常用动画,带详细注释
- iOS编程:学习篇(九)
- 关于iOS Swipe手势的一点总结
- IOS入门学习笔记(简单的登录界面)
- iOS Segment带滑动条切换效果
- iOS项目开发实战——使用同步请求获取网页源代码
- iOS音乐后台播放及锁屏信息显示
- iOS-Core Animation 核心动画
- IOS中关于KVC与KVO知识点
- iOS自动打包流程
- iOS常用第三方类库
- iOS 三种收起键盘的方法
- IOS 本地通知和远程通知
- iOS项目开发实战——网页源代码实现二进制和HTML的转换