代码改变世界

GHUnit的使用

2011-09-16 10:02  乱世文章  阅读(269)  评论(0编辑  收藏  举报

1、GHUnit框架简介

GHUnit是一个基于Object C的测试框架,支持Mac OSX 10.5和iOS 3.0以上版本。它具有以下特点:

支持在Xcode中运行测试、跟踪断点、并直接与调试器交互;

从命令行运行或者使用MakeFile文件运行;

并行测试;

允许测试UI组件;

捕获并显示测试细节;

按照关键字查找测试案例;

查看测试日志;

显示堆栈和调试信息;

在项目中以框架形式引用。

GHUnit是一个开源项目,项目地址:

https://github.com/gabriel/gh-unit#readme

这里有框架的一个更详细的介绍(英文),你可以在此下载框架的源代码和二进制文件。

 

2、在项目中安装GHUnit框架

新建Window-based Application项目,命名为GHUnitTest。

使用Add->New Target…添加一个target,使用模板 iPhone OS-> Cocoa Touch->Application,target 命名为tests(或者别的什么)。

 

把下载到的GHUnitIOS.framework文件拷贝到项目目录下。在frameworks中选择GHUnitIOS.framework,打开info窗口,切换到Targets面板,确保已正确地包含在了tests这个target中:

点击打开链接

选择Targets下的tests,打开info窗口,在General页,通过左下角的+号按钮,把以下框架也包含进LinkedLibraries中:

CoreGraphics.framework

Foundation.framework

UIKit.framework

在Build面板,确保Framework Search Paths中已包含了GHUnitIOS.framework所在的路径;在OtherLinker Flags中加入-ObjC和-all_load。

将Tests-Info.plist文件中Main nib file base name一行删除。

将GHUnitIOSTestMain.m文件加入到项目中,下载地址:http://github.com/gabriel/gh-unit/blob/master/Project-iOS/GHUnitIOSTestMain.m

添加时,注意确保将文件包含到tests中(注意Add To Targets栏):

点击打开链接

在Other Sources中新建一个预编译头文件tests_Prefix.pch,并在其中加入一行:#import<GHUnitIOS/GHUnit.h>。然后在tests的Build设置中将Prefix Header设置为tests_Prefix.pch,这样就不需要每个测试类都import了。

3、创建测试类

新建Objective C类MyTest。修改MyTest.h,将父类由NSObject修改为GHTestCase。修改MyTest.m,实现测试方法(方法名以test开头):

- (void)testStrings {      

    NSString *string1= @"a string";

   GHTestLog(@"I can log to the GHUnit test console: %@",string1);

    // Assert string1is not NULL, with no custom error description

   GHAssertNotNULL(string1, nil);

    // Assert equalobjects, add custom error description

    NSString *string2= @"a string";

    GHAssertEqualObjects(string1,string2, @"A custom error message. string1 should be equal to: %@.",string2);

}

把当前Build Configure设置为Simulator|Debug|tests:

点击打开链接

点击“Build and Run”,弹出模拟器窗口,点击右上角的Run,测试运行结果如下:

点击打开链接

测试结果在界面和控制台中都有显示。