深度解析iPhone中項目單元測試
深度解析iPhone中項目單元測試是本文要介紹的內容,在Xcode的iPhone SDK 3.0之后,已經內置了單元測試的功能,開發者可以借助單元測試寫出更健壯更正確的代碼。
文章使用的SDK版本是3.2.3。 Xcode提供了兩種單元測試方式,分別是邏輯測試與應用測試,邏輯測試用于檢驗那些獨立無環境限制的函數,正是如此,邏輯測試無需啟動模擬器或真機,直接在build階段就完成了。應用測試用于檢測你的iPhone應用程序,可以測試包括界面操作等各方面行為。
邏輯測試
建立邏輯測試步驟:
在iPhone項目里添加一個新target,并選擇iPhone OS-Cocoa Touch-Unit Test Bundle,然后命名并直接添加到哪個iPhone項目下。
設置單元測試的target為當前激活的target
為了整理方便,可新建組專門放置測試文件。添加測試文件選擇添加新文件,并選擇iPhone OS-Cocoa Touch Class-Objective-C test case class,在后續的命名時特別注意要添加到單元測試的target上,且只可勾選一個。
新建完畢后,將測試文件修改為如下形式:
Objective-c代碼
- // 頭文件
- #import <SenTestingKit/SenTestingKit.h>
- #import <UIKit/UIKit.h>
- @interface testfirst : SenTestCase
- {
- }
- - (void)testFirst;
- @end
- // 實現文件
- @implementation testfirst
- int get(int i)
- {
- return i;
- }
- - (void)testFirst
- {
- STAssertTrue(get(0), @"Must Fail");
- }
- @end
- // 頭文件
- #import <SenTestingKit/SenTestingKit.h>
- #import <UIKit/UIKit.h>
- @interface testfirst : SenTestCase
- {
- }
- - (void)testFirst;
- @end
- // 實現文件
- @implementation testfirst
- int get(int i)
- {
- return i;
- }
- - (void)testFirst
- {
- STAssertTrue(get(0), @"Must Fail");
- }
- @end
注意需要導入SenTestingKit的framework,此framework不在列表中,添加時需要指定路徑,在本機上是/Developer/Library/Frameworks/SenTestingKit.framework
邏輯測試步驟:
選擇build,如果沒有錯誤,則編譯成功,如果有錯誤,則Xcode編譯失敗,并指出錯誤之處。
測試的函數簽名必須是(void)testXXX;
小結:深度解析iPhone中項目單元測試的內容介紹完了,希望本文對你有所幫助,更多內容請參考編輯推薦。