`

使用GH-Unit对iOS应用进行单元测试

    博客分类:
  • ios
阅读更多

单元测试的目的

  1. 保证代码的正确性
  2. 支持未来的代码重构

基础环境:

  • 使用苹果系统的电脑
  • XCode

GH-Unit是一个强大的单元测试框架,由Gabriel Handford开发,使用GH-Unit进行单元测试需要进行一些配置。

  1. 新建一个项目并添加一个测试目标(Target)
    我这里新建了一个“Window-based Application”,新建完成后先尝试“Build and Run”保证程序能正常启动,在Targets上右击选择“Add - New Target…”
    Add new target to project
    Target的名称可以命名为Tests或者类似的名字。
  2. 下载GH-Unit框架并添加必要的框架到项目
    下载地址:https://github.com/downloads/gabriel/gh-unit/GHUnit-0.4.28.zip
    解压缩后拖到XCode中,选择拷贝源代码到项目,并且目标选择为Tests
    Adding GHUnitIOS.framework
    打开Tests这个目标进行配置,设置目标依赖到第一个目标,添加CoreGraphics、Foundation、UIKit这几个框架。
  3. 检查“Framework Search Paths”
    检查“Framework Search Paths”这个参数是否指向GHUnitiOS.framework的父目录,一般默认已是正确的。
  4. 针对测试目标的“Other Linker Flags”添加“-Objc”,“-all_load”参数
  5. 修改Tests-Info.plist文件
    修改里面的“Main nib file base name”参数,将默认为“MainWindow”的值清空。
  6. 添加GHUnitIOSTestMain.m (http://github.com/gabriel/gh-unit/blob/master/Project-IPhone/GHUnitIOSTestMain.m)
    下载后拖到Other Sources中,选择拷贝到项目,并且选择目标为测试项目。
  7. (可选)创建Tests_Prefix.pch
    从原来的GHUnitExample_Prefix.pch拷贝一个文件并重命名为Tests_Prefix.pch,并使用XCode添加到项目中。
    修改Tests_Prefix.pch针对移动设备平台的话添加#import <GHUnitIOS/GHUnit.h>,添加后不用在创建的测试代码中引用库。
    最后修改Tests目标的配置文件,搜索GCC_Prefix修改为Tests_Prefix.pch。
  8. (可选)设置Makefile文件
  9. 创建测试
    为了便于源代码管理在项目目录下建立Tests,并导入到XCode中。
    在Tests组下添加一个测试类,用来测试配置是否正确,命名为“SetupTests”,从NSObject继承,不生成头文件。
  10. 运行测试
    选择Tests目标“Build and Run”,便可运行iPhone模拟器开始单元测试,若碰到问题请检查Tests-Info.plist配置是否正确。

参考资料:

http://gabriel.github.com/gh-unit/_installing.html

http://4arrowsmedia.com/2010/09/ghunit-setup/

分享到:
评论

相关推荐

    dropload-gh-pages.

    "dropload-gh-pages"则将dropload技术应用于GitHub Pages上,这是一种由GitHub提供的静态站点托管服务。GitHub Pages允许开发者免费发布个人网站、项目文档或者博客,而且支持自定义域名。当将dropload整合到GitHub ...

    GH-Bladed 理论手册(中文版)

    GH-Bladed 是一个关于风力发电机性能和负载计算的集成软件包,应用于风力发电机初步设计、详细设计及部件规范、风力发电机的验证等方面。该软件具有尖端的用户绘图界面,允许用户直接完成风机参数、风速输入和载荷的...

    easyui-bootstrap-gh-pages.zip

    本篇文章将聚焦于"easyui-bootstrap-gh-pages.zip"这个压缩包,探讨其中蕴含的EasyUI与Bootstrap的结合应用,并对相关知识点进行深入剖析。 首先,EasyUI和Bootstrap是两个广泛使用的前端框架。EasyUI是基于jQuery...

    startbootstrap-sb-admin-gh-pages

    "startbootstrap-sb-admin-gh-pages" 是一个基于Bootstrap框架的免费网页模板,适用于快速构建管理界面或后台系统。这个模板是由Start Bootstrap团队创建并维护的,它在GitHub上开源,便于开发者下载、使用和定制。 ...

    Objective-C的测试框架gh-unit

    Objective-C的测试框架gh-unit,源码gh-unit,GHUnit是一款Objective-C的测试框架,除了支持iOS工程还支持OSX的工程。可以作为单独的测试框架,也可以和其他测试框架一同使用,比如SenTestingKit或者GTM。 功能 ...

    iOS-Overlay-gh-pages.zi

    在iOS应用开发中,UI设计是一项至关重要的任务,因为它直接影响到用户的使用体验和对应用的第一印象。"iOS-Overlay-gh-pages.zi"这个压缩包文件似乎包含了一个专门模仿苹果系统UI风格的组件,这对于想要在Web应用...

    gh-ost-binary-linux-20200209110835.tar.gz

    gh-ost的github下载有时会及其的慢,上传1.0.49到CSDN,有需要的可以来下载。 官方下载地址: https://github.com/github/gh-ost/releases $ sha256sum * a1d7f72e1119bb8a939204a56acbee09eb52c769183a4649e56d6b3b...

    gh-ost安装包,版本1.1.6

    gh-ost安装包,版本1.1.6

    GH-311超声波模块使用说明

    ### GH-311超声波模块使用说明 #### 模块概述 GH-311超声波模块是一款高性能的传感器,适用于多种环境下的距离测量。该模块能够精确测量4米内的目标距离,精度可达0.1mm,广泛应用于自动化控制、机器人导航、安防...

    gh-ost-binary-linux-20170914095800.tar

    gh-ost-binary-linux-20170914095800.tar 常采用的是对几百万以上的表用pt-online-schema-change,这种方式会产生大量的binlog,业务高峰期不能做,会引起主备延迟,gh-ost有一定优势

    AP9435GH-VB一种P沟道TO252封装MOS管

    本文将详细介绍AP9435GH-VB的特性、应用场景、绝对最大额定值、热阻特性、静态电流特性等方面的知识点。 特性 AP9435GH-VB具有以下特性: * Halogen-free:该MOSFET不含halogen元素,符合环保要求。 * TrenchFET ...

    AP9561GH-HF-VB-MOSFET产品应用与参数解析

    AP9561GH-HF MOSFET是VBsemi公司推出的一款高性能P沟道金属氧化物半导体场效应晶体管(MOSFET),其主要特点包括TrenchFET技术、低热阻封装以及通过了100% Rg和UIS测试,确保了产品的可靠性和稳定性。这款MOSFET适用...

    startbootstrap-sb-admin-gh-pages_TheFront_boostrap_

    本项目“startbootstrap-sb-admin-gh-pages”正是基于Bootstrap的一个优秀实例,专为前端开发者提供了CSS样式和布局的优秀模板,尤其适合构建管理界面或企业级应用的前端部分。 首先,我们要理解“startbootstrap”...

    gh-ost, 针对MySQL的GitHub模式迁移在线.zip

    gh-ost, 针对MySQL的GitHub模式迁移在线 基于 的github模式迁移的 gh-ost 是MySQL的triggerless在线模式迁移解决方案。 它可以测试并提供 pausability 。动态控制/重构。审计和许多操作津贴。通过迁移,gh-ost 在主...

    samples-gh-pages_SamplesGhPages_

    【samples-gh-pages_SamplesGhPages_】项目是一个用于展示GitHub Pages应用的工作表,它提供了多种示例和教程,帮助用户了解如何有效地利用GitHub Pages服务。GitHub Pages是GitHub提供的一个静态网页托管服务,允许...

    startbootstrap-sb-admin-2-gh-pages.zip

    本文将深入探讨“startbootstrap-sb-admin-2-gh-pages”项目,这是一个基于Bootstrap框架搭建的后台管理平台,适用于学习与实际业务应用。 首先,我们要了解Bootstrap。Bootstrap是由Twitter开发并开源的一款前端...

    echarts-doc-gh-pages.zip

    "echarts-doc-gh-pages.zip"是一个压缩包,包含了ECharts 3.0版本的官方离线文档,这对于我们理解和使用ECharts进行数据可视化非常有帮助。 在"echarts-doc-gh-pages"这个文件夹中,我们可以期待找到一系列的资源,...

    gulp-gh-pages, gulp插件将内容发布到Github页面.zip

    gulp-gh-pages, gulp插件将内容发布到Github页面 gulp-gh-pages 将内容发布到 Github页面的插件插件插件。安装使用 npm 。npm install --save-dev gulp-gh-pages用法在 gulpfile.j

    AP25N10GH-HF-VB一种N沟道TO252封装MOS管

    在使用AP25N10GH-HF-VB MOS管时,需要注意以下几点: *不得超过绝对最大额定值,否则可能会导致MOS管损坏。 *在使用时,需要确保MOS管的结温在指定范围内。 *在PCB设计时,需要注意MOS管的热设计和布局,以免影响...

    echarts-examples-gh-pages.zip

    ECharts官方提供了一个离线版文档以及示例 [Examples of ECharts] 从github下得 echarts-examples-gh-pages.zip 及 echarts3-docs-master.zip echarts-doc-offline-gh-pages.zip

Global site tag (gtag.js) - Google Analytics