iOS7初体验(2)——单元测试
在Xcode 4.6及以前的版本,一直覺(jué)得單元測(cè)試這部分功能做得很雞肋,用起來(lái)感覺(jué)很別扭。這一次Xcode 5.0默認(rèn)就引入了單元測(cè)試,趕快來(lái)看看看相比以前的版本有什么提升吧!~_~
1.?????首先打開(kāi)上一節(jié)示例用的項(xiàng)目,當(dāng)然,您也可以新建一個(gè)空白的項(xiàng)目;
2.?????先看一下導(dǎo)航區(qū)域的工具欄,相比4.6有哪些變化,如下圖所示:
不難發(fā)現(xiàn),相比Xcode 4.6多了一個(gè)Show the Test Navigator(顯示測(cè)試導(dǎo)航器)的按鈕;
3.?????按command+U運(yùn)行單元測(cè)試……稍等幾秒之后,可以在Issue Navigator(問(wèn)題導(dǎo)航器)中看到與4.6類(lèi)似的提示,如下圖所示:
4.?????單擊Show the Test Navigator(顯示測(cè)試導(dǎo)航器)按鈕,如下圖所示:
5.?????在HelloWorldTests.m文件中,@end之前添加以下代碼:
- (void)testExample2
{
??? XCTAssertTrue(1 == 1, @"just a test");
}
6.?????按command+U運(yùn)行單元測(cè)試……稍等幾秒之后,可以在Test Navigator中看到以下測(cè)試結(jié)果:
7.?????在導(dǎo)航區(qū)域的testExample2上右擊,會(huì)顯示輔助菜單,如下圖所示:
在圖中可以看到能夠單獨(dú)運(yùn)行/禁用某一個(gè)單元測(cè)試~_~。
備注:如果選擇test “testExample2”不難發(fā)現(xiàn),其實(shí)testExample和testExample2兩個(gè)單元測(cè)試都會(huì)運(yùn)行,并且會(huì)在問(wèn)題導(dǎo)航區(qū)域中顯示所有測(cè)試結(jié)果,而在測(cè)試導(dǎo)航區(qū)域卻只更新testExample2的測(cè)試狀態(tài)。這一問(wèn)題相信在未來(lái)Xcode的版本中會(huì)有所改善。:]
8.?????下面演示一下如何對(duì)數(shù)據(jù)模型進(jìn)行測(cè)試,首先在HelloWorld項(xiàng)目中新建一個(gè)名為DataModel的類(lèi),繼承自NSObject;
9.?????首先在導(dǎo)航區(qū)域的HelloWorld節(jié)點(diǎn)上右擊,然后在輔助菜單中選擇New File…,在彈出的對(duì)話框中選擇Objective-C class,然后單擊Next按鈕:
10.??在下一個(gè)對(duì)話框的Class中輸入:DataModel,并確認(rèn)Subclass of:中選擇的是NSObject,然后單擊Next按鈕:
11.??單擊并打開(kāi)DataModel.h,增加一個(gè)屬性定義,調(diào)整后的代碼如下:
#import <Foundation/Foundation.h>
?
@interface DataModel : NSObject
?
@property (assign, nonatomic) NSInteger myId;
?
@end
12.??單擊并打開(kāi)DataModel.m,增加init方法,將myId的默認(rèn)值設(shè)置為100,調(diào)整后的代碼如下:
#import "DataModel.h"
?
@implementation DataModel
?
- (id)init
{
??? if ((self = [super init])) {
??????? _myId = 100;
??? }
??? return self;
}
?
@end
13.??單擊導(dǎo)航區(qū)域工具條中的Show the Test Navigator(顯示測(cè)試導(dǎo)航器)按鈕,然后右擊HelloWorldTests,在彈出的輔助菜單中選擇New Test Class…:
14.??在下一個(gè)對(duì)話框的Class中輸入:DataModelTests,并確認(rèn)Subclass of:中選擇的是XCTestCase,然后單擊Next按鈕,并直接單擊下一個(gè)對(duì)話框中Create按鈕:
15.??單擊上圖中的DataModelTests節(jié)點(diǎn),首先引入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運(yùn)行單元測(cè)試……
?
搞定收工!
?
有關(guān)單元測(cè)試的好處,本文就不贅述了哈,相信有過(guò)Java或.Net開(kāi)發(fā)經(jīng)驗(yàn)的朋友都深有感觸了。進(jìn)一步了解iOS7中的單元測(cè)試,可以參閱蘋(píng)果官方文檔。
?
著作權(quán)聲明:本文由http://blog.csdn.net/liufan321或者h(yuǎn)ttp://www.cnblogs.com/liufan9原創(chuàng),歡迎轉(zhuǎn)載分享。請(qǐng)尊重作者勞動(dòng),轉(zhuǎn)載時(shí)保留該聲明和作者博客鏈接,謝謝!
?
轉(zhuǎn)載于:https://www.cnblogs.com/snake-hand/archive/2013/06/14/3136935.html
總結(jié)
以上是生活随笔為你收集整理的iOS7初体验(2)——单元测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ElasticSearch远程随意代码运
- 下一篇: 什么是数论