溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iphone開發之單元測試SenTestCase

發布時間:2020-04-28 14:12:39 來源:網絡 閱讀:834 作者:arthurchen 欄目:開發技術

使用xcode開發很長一段時間了,可是并沒有使用其中支持的單元測試的功能,所以特別留意了一下使用單元測試的方式。

l  iPhoneSDK3.0開始直接支持單元測試,可以創建Unit test bundle形式的target。方便了單元測試代碼的編寫。

l  還有一個是用google-toolbox-for-mac中帶的iPhone Unit Test 框架,其實此框架也是基于OCUnit庫,但是區別是google-toolbox-for-mac添加了一部分自己的代碼從而實現有限的UI測試。

Xcode中支持兩種形式的單元測試:Logic TestsApplication Tests。

n  其中Logic Tests主要測試程序靜態的函數邏輯功能,在程序的編譯(Build)階段進行,并且只能在模擬器中使用。

n  Application Tests在程序的運行(Run)階段進行,可以更全面的測試程序運行的一些狀態功能,包括AppDelegate,XibviewController等的加載和程序啟動后的一些功能,并且不能在模擬器中使用而只能在真機上使用。

1:測試環境創建

添加測試target到工程

iphone開發之單元測試SenTestCase

 

記得添加SenTestingKit.framework到測試的target中,這樣才能支持測試

iphone開發之單元測試SenTestCase

 

這是一個從SenTestCase繼承的class,測試代碼在里面實現。

iphone開發之單元測試SenTestCase

 

2.編寫測試函數

測試函數的結構為

- (void) test<test_case_name> {

   ...     // Set up, call test-case subject API.

   ST...   // Report pass/fail to testing framework.

   ...     // Tear down.

}

函數命名以test為前綴,并且返回值為void,不帶參數。

其中Set UpTear down可以單獨拿出來寫兩個函數

- (void) setUp {

   test_subject = [[MyClass new] retain];

   STAssertNotNil(test_subject, @"Could not create test subject.");

}

- (void) tearDown {

   [test_subject release];

}

這樣在調用測試函數之前會自動調用setUp 函數,之后會自動調用tearDown 函數。當然,如何寫出好的測試代碼,這個還需要進一步的學習。

準確的說Test Cases不需要運行,編譯的時候就運行了。嘗試 Build Unit Test Target, 你會直接得到一個錯誤,就像編譯錯誤一樣顯示在Xcode里面??梢栽?/span>AppTarget加上Unit Testdenpendency, 這樣,每次Build and Go的時候Test Cases都會運行一次,如果有錯,馬上會停下來,顯示錯誤。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女