iOS7初體驗(2)——單元測試

來源:互聯網
上載者:User

標籤:

在Xcode 4.6及以前的版本,一直覺得單元測試這部分功能做得很雞肋,用起來感覺很彆扭。這一次Xcode 5.0預設就引入了單元測試,趕快來看看看相比以前的版本有什麼提升吧!~_~

1.     首先開啟上一節樣本用的項目,當然,您也可以建立一個空白的項目;

2.     先看一下導航地區的工具列,相比4.6有哪些變化,如所示:

不難發現,相比Xcode 4.6多了一個Show the Test Navigator(顯示測試導航器)的按鈕;

3.     按command+U運行單元測試……稍等幾秒之後,可以在Issue Navigator(問題導航器)中看到與4.6類似的提示,如所示:

4.     單擊Show the Test Navigator(顯示測試導航器)按鈕,如所示:

5.     在HelloWorldTests.m檔案中,@end之前添加以下代碼:

- (void)testExample2

{

    XCTAssertTrue(1 == 1, @"just a test");

}

6.     按command+U運行單元測試……稍等幾秒之後,可以在Test Navigator中看到以下測試結果:

7.     在導航地區的testExample2上右擊,會顯示輔助菜單,如所示:

在圖中可以看到能夠單獨運行/禁用某一個單元測試~_~。

備忘:如果選擇test “testExample2”不難發現,其實testExample和testExample2兩個單元測試都會運行,並且會在問題導航地區中顯示所有測試結果,而在測試導航地區卻只更新testExample2的測試狀態。這一問題相信在未來Xcode的版本中會有所改善。:]

8.     下面示範一下如何對資料模型進行測試,首先在HelloWorld項目中建立一個名為DataModel的類,繼承自NSObject;

9.     首先在導航地區的HelloWorld節點上右擊,然後在輔助菜單中選擇New File…,在彈出的對話方塊中選擇Objective-C class,然後單擊Next按鈕:

10.  在下一個對話方塊的Class中輸入:DataModel,並確認Subclass of:中選擇的是NSObject,然後單擊Next按鈕:

11.  單擊並開啟DataModel.h,增加一個屬性定義,調整後的代碼如下:

#import <Foundation/Foundation.h>

 

@interface DataModel : NSObject

 

@property (assign, nonatomic) NSInteger myId;

 

@end

12.  單擊並開啟DataModel.m,增加init方法,將myId的預設值設定為100,調整後的代碼如下:

#import "DataModel.h"

 

@implementation DataModel

 

- (id)init

{

    if ((self = [super init])) {

        _myId = 100;

    }

    return self;

}

 

@end

13.  單擊導航地區工具條中的Show the Test Navigator(顯示測試導航器)按鈕,然後右擊HelloWorldTests,在彈出的輔助菜單中選擇New Test Class…

14.  在下一個對話方塊的Class中輸入:DataModelTests,並確認Subclass of:中選擇的是XCTestCase,然後單擊Next按鈕,並直接單擊下一個對話方塊中Create按鈕:

15.  單擊中的DataModelTests節點,首先引入DataModel的標頭檔:

#import "DataModel.h"

16.  刪除testExample方法,然後在@end之前添加以下代碼:

- (void)testModelDefaultId

{

    DataModel *model = [[DataModel alloc]init];

    XCTAssertEquals(model.myId, 100, @"The default id should be 100");

}

17.  按command+U運行單元測試……

 

搞定收工!

 

有關單元測試的好處,本文就不贅述了哈,相信有過Java或.Net開發經驗的朋友都深有感觸了。進一步瞭解iOS7中的單元測試,可以參閱蘋果官方文檔。

 

著作權聲明:本文由http://blog.csdn.net/liufan321或者http://www.cnblogs.com/liufan9原創,歡迎轉載分享。請尊重作者勞動,轉載時保留該聲明和作者部落格連結,謝謝!

iOS7初體驗(2)——單元測試

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.