【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

【OCMock】使用介绍分析_第1张图片

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


【执行Unit Test】

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

【OCMock】使用介绍分析_第2张图片

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


你可能感兴趣的:(【OCMock】使用介绍分析)