iOS開發(fā)中的單元測試

OCUnit

OCUnit是Xcode 4.x集成的單元測試框架,OCUnit中的測試分為兩類,一類稱為Logic Tests,另一類稱為Application Tests。Logic Tests更傾向于所謂的白盒測試,用于測試工程中較細節(jié)的邏輯;Application Tests更傾向于黑盒測試,或接口測試,用于測試直接與用戶交互的接口。

·添加單元測試

OCUnit是Xcode集成的,所以其與工程結合理應是最好的。添加到工程中的成本也理應最低。使用XCode創(chuàng)建新工程的流程中就有一個Include Unit Tests的選項,新的工程就會自動生成一個Logic Tests。

單元測試圖1

向已經存在的工程中添加OCUnit Logic Tests也不復雜,只需要添加一個類型為:Cocoa Touch Unit Testing Bundle的Target即可。
向已存在的工程中添加OCUnit測試

向已有的額工程中添加一個測試Target時,XCode會自動生成一個Scheme,運行單元測試用例和Build原工程需要切換不同的Scheme。如果認為切換Scheme非常麻煩,也可在添加Target之前,在Manage Scheme菜單中取消Autocreate schemes。

添加Target不創(chuàng)建Scheme

·創(chuàng)建測試用例

OCUnit的測試用例最常用的方法有三個

1.- (void)setUp:每個test方法執(zhí)行前調用

2.- (void)tearDown:每個test方法執(zhí)行后調用

3.- (void)testXXX:命名為XXX的測試方法

添加Target之時XCode已經自動創(chuàng)建了一個測試用例:UITestDemoTests,其中UnitTestDemo是工程的名字,該類中已經包含了setUp,tearDown和testExample三個方法

通過command+n,選擇Objective-C test case class創(chuàng)建一個新的測試用例。通過Xcode創(chuàng)建的測試用例類死一個繼承自SenTestCase(OCUnit由SEN:TE公司開發(fā),因此基類命名為SenTestCase)的空類,需要模仿UnitTestDemoTests編寫測試方法。

創(chuàng)建一個測試用例

開發(fā)者可以自己實現(xiàn)無返回值,且命名規(guī)則為testXXX的實例方法,并且使用框架提供的大量斷言方法。

LogicTests與Application Tests的區(qū)別主要在setUp方法,Logic Tests只需在setUp方法中初始化一些測試數(shù)據(jù),而Application Tests需要在setUp方法中獲取主應用的AppDelegate,供test方法調用。

值得注意的是,OCUnit的test bundle是侵入主應用的,因此在使用過程中要十分注意,不要讓單元測試的資源,造成詭異的Bug。

·運行測試

由于OCunit是集成在Xcode中的框架,因此在Xcode中運行也比較方便。切換到單元測試的scheme(如與工程公用的scheme則無需切換),Product->Test(或直接使用快捷鍵Command+U),框架會自動查找所有工程中SenTestCase的子類,運行其中全部命名類似testXXX的無返回值方法。

·測試反饋

OCUnit的失敗方法會通過Console和Xcode Issues兩個位置反饋,通過Xcode Issues可以直接定位到出現(xiàn)錯誤的單元測試代碼行。Issue的提示信息就是在單元測試斷言方法中定義的description。

未完 本文摘自

http://www.cocoachina.com/industry/20130724/6667.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 看到文章標題的時候,你也許會問,測試不是測試妹子干的事嗎?的確,測試妹子能幫助我們測試出軟件的很多問題(不符合業(yè)務...
    FITZ9311閱讀 18,352評論 22 107
  • 轉:http://www.itdecent.cn/p/d5fca0185e83 Xcode測試 前言 總算在今天把...
    測試小螞蟻閱讀 3,372評論 0 20
  • 關于iOS的UI自動化測試,是從Xcode7之后才支持的比較好,使用XCTest.framework,Xcode可...
    房小房MT閱讀 5,502評論 4 13
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評論 19 139
  • 領導給的需求是: 關于單元測試的任務反饋: http://www.itdecent.cn/p/d15a7dea0c...
    SOI閱讀 4,093評論 1 34

友情鏈接更多精彩內容