背景:項目已經(jīng)創(chuàng)建大約兩年切黔,編程語言是常見的OC啥辨,項目里用到了cocoapods介返,也用到了swift焕妙,現(xiàn)在單元測試打算用swift語言(OC被拋棄只是時間問題)
-
創(chuàng)建項目時記得勾選『include Unit Tests』
在項目創(chuàng)建時如果直接選擇了包含單元測試是最方便的了蒋伦。xcode7中的UI自動測試已經(jīng)很完善,建議『include UI Tests』也一起選上焚鹊。
已有項目痕届,可以通過添加target的方式添加
選擇iOS Unit Testing Bundle
- 添加測試文件
在單元測試項目下,新建文件末患,選擇source下的Unit Test Case Class研叫。
tips:如果幾個test case都有一些共同的數(shù)據(jù)或邏輯,可以自己新建一個test case的基類璧针,然后每個分別繼承
- 將要測試的module導(dǎo)入到test case中
import完你需要測試的項目名稱后嚷炉,就可以在這個類里歡快的調(diào)用里面的類了
<pre><code>@testable import YQImageCompress
</code></pre>
使用cocoapods的同學(xué)注意了
在import完后很可能你的swift『Bridging-Header.h』橋接文件會報如下的錯:
<pre>failed to import bridging header</pre>
或者
<pre>SDWebImage/UIImageView+WebCache.h File Not Found Error</pre>
可能你不愿接受這個現(xiàn)實,clean了項目探橱,重新build渤昌,或者重啟了計算機虽抄。在模擬器中運行你的項目時心里默念:剛才還是好好的啊,明明能正常運行独柑,為什么有錯誤迈窟!
是的。為此我已經(jīng)抓掉了不少頭發(fā)忌栅。
原因是:unit tests是個單獨的項目车酣,所以一些項目配置必須重新配置一遍
因為swift的橋接文件很可能在你第一次創(chuàng)建swift類時xcode自動幫你配置了項目索绪,你可能沒有意識到build setting其實已經(jīng)更改了湖员。
可以參照著自己項目的配置來重新配置一次。
可以參考這個鏈接下的回答:http://stackoverflow.com/questions/26116288/failed-to-import-bridging-header
cocoapods同理瑞驱,其實已經(jīng)默認幫你配置了不少search paths娘摔,自己手動貼進去吧,主要是下面這幾個選項
還差最后一步:Enable Testability
一切類都配置到項目后又出現(xiàn)了這個錯誤:
'Module was not compiled for testing'
在原來的項目里配置Enable Testability為Yes
現(xiàn)在你就真的可以愉快的在test case中快活的測試任意一個項目中的類了
相關(guān)鏈接:
http://stackoverflow.com/questions/30787674/module-was-not-compiled-for-testing-when-using-testable