博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS7单元测试
阅读量:4071 次
发布时间:2019-05-25

本文共 1783 字,大约阅读时间需要 5 分钟。

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”不难发现,其实testExampletestExample2两个单元测试都会运行,并且会在问题导航区域中显示所有测试结果,而在测试导航区域却只更新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 
@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中的单元测试,可以参阅。 

著作权声明:本文由或者原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!

你可能感兴趣的文章
水平和垂直翻转可视对象
查看>>
1.随机函数,计算机运行的基石
查看>>
MouseEvent的e.stageX是Number型,可见as3作者的考虑
查看>>
在mc中直接加aswing组件,该组件还需最后用validate()方法
查看>>
社区设计细节 : 用户可选是否在新窗口中打开主题
查看>>
Memcache是什么?
查看>>
Eclipse和FlexBuilder中设置编辑代码高亮
查看>>
移植Vim配色方案到Eclipse
查看>>
xml解析
查看>>
告诉你到底什么是crossdomain.xml
查看>>
flexBuilder3中生成的模板页不支持flash全屏的修改办法
查看>>
aswing学习笔记
查看>>
aswing学习笔记2-不规则外框-请教思路
查看>>
aswing学习笔记3-在JPanel中,如何将.png格式的图片设置为背景?
查看>>
aswing学习笔记4-通过调用面板中的按钮实现主界面动态切换皮肤的问题!
查看>>
飞机移动缓动类,深藏于心的精华
查看>>
Eclipse中有趣的设置
查看>>
[AS3]使用RSL进行AS瘦身编程
查看>>
哈希结构是如何找到相对应的键-值对?
查看>>
IE中的注释:saved from url
查看>>