【OCMock】使用介绍分析

想学习下IOS下,如何做Unit Test,同事推荐了OCMock这个site,于是就花了点时间,研究下这个框架,记录下过程中碰到的一些问题。

【介绍】

OCMock的资料在官网在: http://www.ocmock.org , 详细参考其中的IOS一节即可;

【源码】

打开官网中的IOS5 example project,就可以查看到源码的地址: 

https://github.com/erikdoe/ocmock

在终端输入: git clone https://github.com/erikdoe/ocmock.git

就可以把相关的源码下载到本地, 里面包含了“Example”,“Resource”, “tools”三大块,还不大清楚具体有什么内容,只能猜个大概。


【分析】

1. Examples文件夹

里面包含了ArcExamples, IOS5Examples,iphoneExamples,三个部分,对应不同的平台?

ArcExamples,打开工程,报错,缺少libOCMock.a文件;里面只有一个main文件,和一个“.1”的文件,有点奇怪,是个说明性的工程么?

IOS5Examples,打开编译通过。

IPhoneExample, 同样通过。


【单元测试步骤】

1.在Project 中new一个targe,FILE->NEW->Target, 类型为Cocoa Touch Unit testing Bundle, 一路next,填写targe的名字,完成。

2. 系统自动产生一个target,如图中的testoc, 目录。

 

3. 编写单元测试内容;

在testoc.h中申明,在testoc.m中实现,具体实现方式,参考例子文件RootViewController.m。


4. 编译

完成unit test后,需要设置编译环境,才能build通过,根据官方文档:http://www.ocmock.org IOS篇的描述 ,要设置的环境变量如下:

(1)  在build phase中的“Link Binaries With Libraries”中添加libOCMock.m文件

(2) 在 Header Search Path中添加“$(PROJECT_DIR)/Libraries/Headers”,指明头文件的搜索路径。这里Libraries/Headers就在工程目录中,可以看到相关的头文件。

(3)强制XCode去装载静态库libOCMock.a,以及它需要的framewrok;(官网解释说,这是由于XCode的linker太聪明,只会加载它认为有价值的库文件,所以需要强制它去加载libOCMock.a)

在Other Linker Flags 中添加如下内容:

-Objc

-force_load

$(PROJECT_DIR)/Libraries/libOCMock.a

-framework

UIKit

-framework

SenTestingKit


完成这三步后,编译通过。


【执行Unit Test】

在Product->Edit Scheme->Test中加入需要运行的单元测试target:


然后,点击Project-Test,运行单元测试。就能得到测试结果。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值