qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Xcode單元測試環境配置

           單元測試(unit testing),是指對軟件中的最小可測試單元進行檢查和驗證。對于單元測試中單元的含義,一般來說,要根據實際情況去判定其具體含義,如C語言中單元指一個函數,Java里單元指一個類,圖形化的軟件中可以指一個窗口或一個菜單等。總的來說,單元就是人為規定的最小的被測功能模塊。單元測試是在軟件開發過程中要進行的最低級別的測試活動,軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試。

            二. Xcode中的UnitTest

            Xcode中集成了單元測試框架OCUnit,可以完成不同側重點的測試。Xcode下的單元測試分為logic uint tests和application unit tests,兩種類型的單元測試都需要對應一個自己的Target。

            logic uint tests在編譯階段進行,并且只能在模擬器中進行,并且需要配置一個單獨的schemes來運行。主要是針對數據層的各個模塊進行測試,如果數據層的模塊劃分比較理想解耦相對徹底,則可以通過邏輯單元測試對各模塊給出各種輸入,然后對各數據模塊的輸出進行判斷,來判斷各數據模塊是否正常。

            application unit tests在程序運行階段進行,可以在模擬器和真機上進行,可以在應用的schemes或者單獨配置的schemes里面運行。主要是針對應用中的相對比較重要的類以及部分簡單的界面操作進行測試,完成邏輯單元測試以外的檢測。

            xcode可以通過2種方式創建UnitTest,一種是創建工程時自帶UnitTest,一種時在已有工程添加UnitTest。

            三. Xcode創建帶UnitTest的工程(Xcode 4.6.2)

            如果在新建工程的時候選中

            并且新建的工程是一個應用,那么系統會默認生成application unit tests;新建其它類型的工程選中Include Unit Tests的話,系統默認生成logic uint tests。系統自動生成的測試單元時會自動生成對應的target,并且一個target只能對應一中類型的單元測試,但可以包含多個測試文件,針對工程中不同的類進行測試。

            四. Xcode向已有工程添加UnitTest(Xcode 4.6.2)

            如果在新建工程的時候沒有選擇Include Unit Tests的話,則可以手動去添加單元測試。

            下面首先介紹下向工程添加單元測試的target:

            1、選則File->New->New Target,在左側欄中選中iOS->other,右邊選擇Cocoa Touch Unit Tests Bundle,如圖

            Next后位target完成命名

            這樣就完成了向工程中添加單元測試用的target。效果如下

            其實按如上步驟添加單元測試target的話,生成的就是一個logic uint tests。

            一般情況下Xcode在你添加新的target的時候會自動的添加一個schemes,該schemes的命名與你添加的target一樣。

            如果你不想在新建target的時候新建scheme(因為application unit tests可以在真機和模擬器上運行,并且時在程序運行時進行測試,所以完全可以和應用本身的target共用一個scheme,這樣進行應用單元測試的時候就不用切換scheme。)可以選擇上圖的Manage Schemes,去掉Autocreate schemes,如下圖:


           3、搜索Test Host,設置其值為$(BUNDLE_LOADER)效果如圖

            4、使新建的單元測試target依賴與編譯應用的target,效果如圖

            5、如果是在新建的時候系統默認新建了scheme,則可以通過新的scheme來進行application tests,如果沒有默認新建scheme,則可以編輯用來編譯工程的scheme,選擇左側的Test如圖:

            點擊底部的“+”,將單元測試的target添加進來。如圖

            這樣原來的logic unit tests就配置成application unit tests了。可以按運行logic unit tests的方法運行application unit tests,來驗證是否配置正確。

            選擇Product ->Test(或者Command+U)

            可以對比Logic UnitTest 運行完的report和 Application UnitTest運行的report有不一樣的地方,就是上圖方框這一欄 Application UnitTest

            有 “Run test suit all tests” 這一欄。

          posted on 2013-07-09 10:21 順其自然EVO 閱讀(289) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2013年7月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 平武县| 临泉县| 大埔区| 莱阳市| 奉化市| 乳源| 阳春市| 晋城| 桐乡市| 平舆县| 临洮县| 托克托县| 淳安县| 马关县| 昌宁县| 年辖:市辖区| 巍山| 梅河口市| 萨迦县| 宝鸡市| 筠连县| 偃师市| 开鲁县| 青海省| 大渡口区| 穆棱市| 任丘市| 亚东县| 绩溪县| 类乌齐县| 鹤岗市| 成都市| 阳曲县| 鄱阳县| 巴南区| 元谋县| 罗城| 武强县| 普兰店市| 高青县| 荔浦县|