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,這個是我一個同事會莫名奇妙遭遇的