IOS 下自动化测试框架 GHUnit 和 OCMock 初探 [一]

来源:互联网 发布:淘宝怎么搜卖家id 编辑:程序博客网 时间:2024/05/21 19:37

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的效果图。从来查看变化
GHUnit的安装很简单,这里只考虑IOS的GHUint
1 git clone https://github.com/gabriel/gh-unit
2 cd project-iOS
3 make 编译打包生成。
经过上面3步应该可以生成如下:

从上图可以看到,生成了对于Device和Simulator的静态库文件,或者Framework。可以根据实际情况使用。

 接下来我们就介绍怎么在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 =[NSStringstringWithString:@"2321"];

  GHAssertEqualStrings(str,@"2321",nil);

}


看看测试成功 和 失败结果如何...

怎么样,是不是很简单,有图有真相。在下一节我将介绍 OCMock 的应用,以及怎么集成到GHUnit Framework,敬请期待。。。

原创粉丝点击