zoukankan      html  css  js  c++  java
  • 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”不难发现,其实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 <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原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!


    原创文章,如需转载请注明出处,谢谢!

    欢迎访问本人技术微博 趣味苹果开发 相互交流,共同进步!

    欢迎访问本人新浪微博 可可爸刘凡

    用趣味的心态,开发有趣味的应用!

  • 相关阅读:
    vsftp搭建
    进程管理相关命令(15 个)
    系统管理与性能监视命令 (9 个)
    系统权限及用户授权相关命令(4 个)
    用户管理命令(10个命令)
    深入网络操作命令(9条命令)
    查看系统用户登陆信息的命令(7 个)
    查看文件及内容处理命令(21个命令)
    有关磁盘与文件系统的命令(16个命令)
    linux kernel bisops.h
  • 原文地址:https://www.cnblogs.com/liufan9/p/3135414.html
Copyright © 2011-2022 走看看