<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

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

    iOS開發那些事--OCUnit測試框架

    使用OCUnit測試框架iOS單元測試框架
      原則上,是否使用測試框架都不會影響單元測試結果,但是“工欲善其事,必先利其器”使用單元測試框架更便于我們測試和分析結果。
      主要的iOS單元測試框架有:
      OCUnit,是開源測試框架,與Xcode工具集成在一起使用非常方便,測試報告以文本形式輸出到輸出窗口;
      GHUnit,是開源測試框架,它可以將測試報告以應用形式可視化輸出到設備或模擬器上,也可以以文本形式輸出到輸出窗口;GHUnit可以測試OCUnit編寫的測試用例
      OCMock,是開源測試框架,它主要為測試提供Mock對象(偽對象)。
      添加OCUnit到工程
      添加OCUnit到工程中有兩種方法,一種是在創建工程時添加,勾選“include Unit Tests”;另一種是在現有工程中添加“Cocoa Touch Unit Testing Bundle”Target來實現。下面我們詳細介紹這兩種添加過程。
      1、創建工程時候勾選“include Unit Tests”
      該種方式添加的單元測試屬于應用測試(Application Testing)。在創建一個工程時,如果采用“Single View Application”模板,在選項中勾選“include Unit Tests”即可在工程中添加OCUnit框架。
      
      工程創建完,在導航面板中會多一個PITaxTests組(<工程名>Tests),包含PITaxTests測試類。在右邊的Target欄中多了一個PITaxTests Target。
      
      但是打開Scheme列表還只有一個PITax,這是我們需要注意的。運行它可以通過:選擇菜單Product→Test或工具欄中Test按鈕(下拉Run按鈕選擇)或快捷鍵command+U等幾種方式。
      如果打開Frameworks組會發現添加了SenTestingKit.framework,SenTestingKit.framework就 是OCUnit框架。因為單元測試框架一般命名為xUnit,如Java的單元測試框架是JUnit,.NET單元測試框架是NUnit等,OCUnit 是Objective-C單元測試框架之意。
      2、現有工程中添加Target實現
      該種方式添加的單元測試,屬于邏輯測試(Logic Testing)。在一個現有工程中,選擇菜單File→New→Target…,選擇模板iOS→Other中的 “Cocoa Touch Unit Testing Bundle”。
      
      點擊Next按鈕,在Product Name項目中輸入LogicTest,創建完成后,在導航面板中多出了一個LogicTest組,包含LogicTest測試類。在右邊的Target欄中多了一個LogicTest Target。
      
     與上一種添加方式不同的是,在Scheme列表中會添加一個LogicTest,這也是我們需要注意的,這也是應用單元測試和邏輯單元測試的另一個 不同之處。運行它需要選擇Scheme中LogicTest的iPhone 6.0 Simulator(或iPad 6.0 Simulator)運行,但是不能選擇iOS Device,邏輯單元測試只能在模擬器中運行。然后再選擇菜單Product→Test、工具欄中Test按鈕(下拉Run按鈕選擇)和快捷鍵 command+U等幾種方式運行。
      無論那種方式添加,默認生成的測試類基本都是一樣的,下面代碼是默認生成的LogicTest測試類中的LogicTest.h和LogicTest.m文件。
    //
    //  LogicTest.h
    //  LogicTest
    //
    #import <SenTestingKit/SenTestingKit.h>
    @interface LogicTest : SenTestCase
    @end
    //
    //  LogicTest.m
    //  LogicTest
    //
    #import “LogicTest.h”
    @implementation LogicTest
    - (void)setUp
    {
    [super setUp];
    // Set-up code here.
    }
    - (void)tearDown
    {
    // Tear-down code here.
    [super tearDown];
    }
    - (void)testExample
    {
    STFail(@”Unit tests are not implemented yet in LogicTest”);
    }
    @end
      作為OCUnit測試類需要引入<SenTestingKit/SenTestingKit.h>頭文件,并繼承 SenTestCase父類。testExample方法是一般的測試方法,方法名必須test開頭,測試方法的個數沒有限制,方法中STFail是 OCUnit框架定義的一個宏,是無條件斷言失敗,實際使用時候要修改這個方法中的代碼。
      在m文件中需要重新方法setUp和tearDown,我們自己編寫的測試類一樣,setUp方法是初始化方法,tearDown方法是釋放資源的 方法,setUp和tearDown方法在每次調用測試方法之前和之后調用,因此在測試類運行的生命周期中這兩個方法可能多次運行,它們的時序圖
      

    posted on 2014-08-07 10:46 順其自然EVO 閱讀(248) 評論(0)  編輯  收藏


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


    網站導航:
     
    <2014年8月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产自国产自愉自愉免费24区| 激情吃奶吻胸免费视频xxxx| 久久精品无码专区免费青青| 亚洲国产精久久久久久久| 国产免费MV大全视频网站| 337p日本欧洲亚洲大胆裸体艺术| 一级A毛片免费观看久久精品| 免费在线观看一级毛片| 特级毛片A级毛片免费播放| 亚洲国产中文v高清在线观看| 一级做a爱片特黄在线观看免费看| 亚洲成av人片在线观看天堂无码| 免费国产黄网站在线看| 国产亚洲精aa成人网站| a级精品九九九大片免费看| 亚洲AV无码久久精品蜜桃| 免费国产黄网站在线观看可以下载| 亚洲精品视频在线观看视频| 黄瓜视频高清在线看免费下载| 亚洲欧美日韩综合久久久久| 亚洲AV蜜桃永久无码精品| 很黄很污的网站免费| 久久狠狠爱亚洲综合影院| 免费a级毛片无码av| 三年片在线观看免费| 亚洲国产视频网站| 国产精品视频免费一区二区三区| 高清免费久久午夜精品| 久久亚洲精品中文字幕无码| 免费看美女裸露无档网站| 看成年女人免费午夜视频| 国产亚洲3p无码一区二区| 国产片AV片永久免费观看| 精品视频免费在线| 久久久无码精品亚洲日韩蜜臀浪潮 | 亚洲日韩av无码| 久热中文字幕在线精品免费| 午夜亚洲乱码伦小说区69堂| 亚洲色图在线播放| 国产乱人免费视频| 91精品视频在线免费观看|