单元测试
iOS7初体验(2)——单元测试
在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 原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!
原创文章,如需转载请注明出处,谢谢!
欢迎访问本人技术微博 趣味苹果开发 相互交流,共同进步!
欢迎访问本人新浪微博 可可爸刘凡
用趣味的心态,开发有趣味的应用!
分类: iOS开发 , 工作随笔
标签: iOS7 , HelloWorld , 单元测试
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息