在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原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!

转载于:https://www.cnblogs.com/snake-hand/archive/2013/06/14/3136935.html

iOS7初体验(2)——单元测试相关推荐

  1. iOS7初体验(1)——第一个应用程序HelloWorld

    iOS7 Beta已经发布了,迫不及待地下载了iOS 7及Xcode 5并体验了一下.先做一个简单的Hello World看看都有哪些变化吧. 1. 启动Xcode5-DP: 2. 从菜单选择File ...

  2. iOS7和Xcode5初体验(多图杀猫) -毛玻璃时代的来临

    WWDC2013来了,一夜未眠.没有兴奋,没有惊喜,没有失望,只有落寞. 不管怎样,WWDC2013 keynote还是有一些亮点,这里说一下我个人感兴趣的几个内容. 首先是这次keynote上唯一的 ...

  3. JavaWeb进阶之路:MyBatis初体验

    JavaWeb进阶之路:MyBatis初体验 1. 简介 1.1 什么是MyBatis MyBatis 是一款优秀的持久层框架. 它支持自定义 SQL.存储过程以及高级映射. MyBatis 免除了几 ...

  4. 测试小白的心酸路之测试初体验

    测试初体验-来自测试小白的自述 本人是一个2021年应届毕业生,大三的时候去某家大厂实习过三个月的开发,那三个月自己仿佛老了10岁,天天跟代码打交道,作为一个自由主义者实在是有些熬不住,但是不想抛弃大 ...

  5. 苹果电脑安装python3密码_mac系统安装Python3初体验

    前沿 对于iOS开发不要随便拆卸系统自带的Python,因为有很多 library 还是使用 Python2.7. 1 安装Xcode 1.1 App Store 搜索Xcode 并安装 1.2 安装 ...

  6. MapReduce编程初体验

    需求:在给定的文本文件中统计输出每一个单词出现的总次数 第一步: 准备一个aaa.txt文本文档 第二步: 在文本文档中随便写入一些测试数据,这里我写入的是 hello,world,hadoop he ...

  7. 小程序 缩放_缩放流星应用程序的初体验

    小程序 缩放 by Elie Steinbock 埃莉·斯坦博克(Elie Steinbock) 缩放流星应用程序的初体验 (First Experiences Scaling a Meteor Ap ...

  8. wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言 2 下载.安装wxWidgets 3 wxWidgets应用程序初体验 4 wxWidgets学习资料及利用方法指导 5 ...

  9. 用鸿蒙跑了个 “hello world”!鸿蒙开发初体验

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源 | https://my.oschina.net/u ...

最新文章

  1. 易点租加速电脑租赁市场布局
  2. deep_ocr 是使得 OCR 比 tesseract 更好的中文识别、身份证识别等等
  3. java content()_Java contentEquals() 方法 - Break易站
  4. 2018-11-25-今日总结
  5. 【PHP】IPv4与整数转换、IPv6与整数转换
  6. 大一java期末考笔试_大学java期末考试试题和答案
  7. centos: firewalld 一
  8. ios input框无法输入问题
  9. 如何用4K YouTube转换视频为MP3,同时设置成MP3桌面播放器?
  10. 数据库课程设计(在线销售系统)
  11. Mirth Connect 第二章 什么是通道?
  12. 为什么大部分人,会对南北经济“差距”产生误解?
  13. bomb和mysql_Bigger Bomb
  14. Python游戏编程入门(有目录及案例图片)-通过简单游戏学习python
  15. html5怎么做京东表格,HTML+CSS+PS 编写京东商城首页
  16. 《认知觉醒》-潜意识
  17. 一个博弈游戏,据说智商130才看的懂
  18. 开机提示小娜无法在本计算机运行,解决Win10正式版开始菜单与小娜打不开问题的三种方法...
  19. 如何让div靠右_如何让div靠右
  20. Apriori算法找出频繁项集(python)

热门文章

  1. .NEt中的继承、聚合和组合
  2. GitHub入门:如何上传与下载工程?
  3. C#怎么用代码模拟手机去访问手机网站抓取数据
  4. 05 切片、迭代、列表生成
  5. BZOJ 2003 [Hnoi2010]Matrix 矩阵
  6. 那些年收藏的技术文章(一) CSDN篇
  7. Django开发中常用的命令总结
  8. C#用DataTable实现Group by数据统计
  9. 革新以太网交换机架构 全光网络的风刮进园区
  10. javax.validation.ValidationException: Unable to find a default provider