IOS下自动化测试的框架主要有 OCUnit, GHUnit ,KIF,Kiwi等。OCUnit 是XCode自带的测试框架。下面我将给大家介绍 另一个强大的 测试框架 GHUnit
相比自带的ocunit,GHUnit可以兼容ocunit的语法,并提供了异步测试的方法。测试target是一个独立的app,可以加断点和可以在真机上运行。可以使用GHAsyncTestCase 支持异步测试。
GHUnit 项目https://github.com/gabriel/gh-unit
GHUnit同时支持IOS和MacOS开发测试框架.她包括如下功能
- 支持run 模式 支持断点debug
- 支持测试 UI 组件
- 支持界面展示获得详细的测试结果。
- 支持对测试用例搜索功能
- 显示详细的堆栈调用信息
- 可以作为framework的方式被引入
- 可以推断UIView 是否被改变
- 快速验证和纪录UIView的改变
- 可以查看UIView的效果图。从来查看变化
接下来我们就介绍怎么在test 工程中加入GHUnit支持。
1. 新建一个工程
Next
注意不需要include Unit Test
2 把项目生成的AppDelegate.h 和.m 文件删除(可选)
3 在工程中加入GHUnitIOS.framework
可以通过
选择GHUnitIOS.framework添加到工程项目下。
tips:需要选中Copy items into destionation group's folder (if needed)
好了。framework已经添加入test工程中了。
4 找到项目的 main.h
修改 main 函数 如下图:
Tips:如果提示找不到 GHUnitIOSAppDelegete.h的话,需要配置工程属性
Header Search Paths :定义到保护了GHUnitIOS.framework的目录。
为了使用GHUnitIOS.framework 。还需要条件 Other linker flags: -ObjC -all_load
不出问题。这个时候应该可以了。直接run工程,将出现
点击 右上角 Run 可以获得测试结果。
5 解下来就想OCUnit一样,直接建立测试文件。并写测试用例方法。编译运行。
新建 MyTest.h .m
MyTest.h
#import <UIKit/UIKit.h>
#import "GHUnit.h"
@interface MyTest : GHTestCase
@end
MyTest.m
#import "MyTest.h"
@implementation MyTest
- (void)testFoo{
NSString *str =[NSString stringWithString:@"2321"];
GHAssertEqualStrings(str,@"2321", nil);
}
看看测试成功 和 失败结果如何...
怎么样,是不是很简单,有图有真相。在下一节我将介绍 OCMock 的应用,以及怎么集成到GHUnit Framework,敬请期待。。。