好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

单元测试

单元测试

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/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于单元测试的详细内容...

  阅读:45次