OCMock是一种支持objective-c语言上,进行Unit Test的Mock工具。
在Unit Test时必须要使用mock技术来更严谨具体的测试单一实例。具体可以去查mock技术。
在Xcode中嵌入,OCMock
一.主要有两种方式
1.引入framework与静态库
2.直接引入头文件与静态库
官网是http://ocmock.org/
第一种方式可以参见Colin Barrett博客:http://iamthewalr.us/blog/2008/11/ocmock-and-the-iphone/#fn:limitation
这个博客是2008年的,如果使用现在Xcode4.2,里面的设置,需要具体参见TARGETS的Build Phases设置
第二种方式,就是把提供的Libraries文件里的Header手动配置到工程中,这个涉及到配置的比第一种要多。
二
具体配置步骤:
配置framework的
到http://ocmock.org/的Download里下载工程
我下载的是1.77
打开dmg,我们要用到的是Release文件夹里的OCMock.framework
把这个OCMock.framework先放到你的工程文件夹里
(就好像你要往你的项目里要加图片,你第一步是把图片放到工程文件目录下,再在Xcode里添加这个图片吧,如果直接用Xcode添加,路径可能就不是你喜欢的了,诶,自己体会...)
1.现在配置你的TestTarget
你使用OCMock是要用到你的测试Target上,而不是项目Target上,所以,选中你的测试Target,这里我的是iPhoneExampleTests这个Target
选中Build Phases
看到了我新添加了一个Build Phase-Copy Files (0 items),按照Colin Barrett的那个博客所说,
配置如下:
将你拷贝到工程目录下的OCMock.framework文件夹整个拖入Add files here区域,即可成功添加OCMock.framework
2.将静态库文件libOCMock.a 添加到你的项目中,步骤是,刚才解压的那个Release文件夹里,有一个Library文件夹,里面有libOCMock.a和Header文件,我们这里只需要libOCMock.a这个静态库文件,我建议你还是用一个文件夹,装入这个文件,放到工程目录下。然后拖拽添加到Link Binary With Libraries Build Phase (这个也在Build Phase)里
3.现在,在选中这个target的Build Settings,就在Build Phases旁边
配置 Other Linker Flags
ok,现在你可以参看如何使用OCMock晚上你的objective-c unit test了。
配置Header的方式,可以参照ocmock.org里iPhone/os里的配置说明,但需要注意的是,如果你的Xcode比较2,你可能在配置Other Linker Flags时需要把你的
$(PROJECT_DIR)/Libraries/libOCMock.a 这个配置加上双引号,否则会报link error,这个是我一个同事会莫名奇妙遭遇的