ios的单元測试OCUnit以及更新了之后的XCTestCase
1、像一般创建项目的步骤一样。创建一个用于測试的项目或者打开一个待測试的项目。
(oc是5.0之前所使用的測试,如今用的是XCtestCase,默认会创建一个主的測试类。曾经版本号可能非常多步骤省去)
例如以下:我们能够看到一个text中的測试文件,如今全部測试类都是继承XCTestCase类。
2、写入对应的測试用例在測试类,測试类中对要測试的类须要进入对应的类的头文件,这个是理所应当的。然后执行“执行測试”。快捷键:command+U或者product—> test。
以下是是执行成功之后的文档。
上面就是一个简单的測试成功的样例。
2、不同版本号之间的区别:
熟悉OCUtest的人应该非常快就能够熟悉OCUnit。由于一般都是一样的,XCTest是对OCUnit进一步的封装。
存在下面一点微小的差异:
1)使用不同的框架,測试用例须要继承不同的基类,XCTest继承XCTestCase基类,而OCUnit继承SenTest基类。
2)由于继承的基类不同,所以那些断言的方法名字的前缀也会发生改变。XCTest中的断言方法是XCT——也就是前面几个字母。相同OCUint中是ST。是SenTest的前缀。
3)(最大的差别)在XCTest中,使用类方法。使用者能够使用类方法的级别的setUp和tearDown方法。让測试代码更加的合理。
更加的有效控制測试方法之间的隔离环境的问题。我们
4)到了6.0之后,省略了类方法,直接就是实例的setUp(进入)和tearDown(出来)方法和对应的实例方法。
例外两个方法我们能够从英文上面看出来,一个是測试功能性的样例,一个是測试性能上的样例。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" height="362" width="719">
能够看上面红色地方添加了检測代码性能的方法。
3、如今的xcode中都能够进行通过一个可管理的大量測试用例"分拆逻辑測试"。在代码库的增长和进化方面会产生非常多不同。
OCUnit和XCTest兼容性,他们之间的转化是基于target——>by ——> target
步骤:
1.选择 Edit > Refactor > Convert OCUnit to XCTest。
2.点击下一步,进入到下一个工作表。
3.在出现的表单中,选择要转换的測试目标。
4.要查看一个特定的目标能否与 XCTest 转换。请单击其名称。
5.单击下一步button。弹出了一个FileMerge界面,能够查阅更改。(这一步就是我们常常使用到的给边文件名称字的方法)
6.假设确定是这样更改,就能够单击保存button。Xcode会把更改写入文件。
參看链接:
http://www.cocoachina.com/ios/20140717/9168.html
4、书写測试的是应该注意一些细节:
1)測试用例中的方法应该是曾经缀为test,我们经常写为DISABLE_test… 这样就不会測试,由于识别仅仅是识别test开头的。
2) 測试须要一个放置的位置。比方我们測试一个用例的时候我们能够创建对应的类,而且继承XCTestCase。在xcode中直接选择创建測试的类就好了。
3)測试要有一定的语气效果,ios中表达预期的效果一般使用断言来表示。
4)xcTestCase中測试都是依照一行行来进行測试,假设失败,断言会抛出异常。
5)測试用例,測试用例(能够仅仅有一个方法,或者多个方法),运行的循序setup——> 測试用例的方法——> teardown .
ios的单元測试OCUnit以及更新了之后的XCTestCase的更多相关文章
- ios单元測试之GHUnit
1.相同创建一个測试的project, 2.通过cocoaPod来下载GHUnit框架,或者到github上下载.由于这个框架是开源的第三方框架. 同一时候加入QuartCore.framework( ...
- iOS单元測试:Specta + Expecta + OCMock + OHHTTPStubs + KIF
框架选择 參考这篇选型文章,http://zixun.github.io/blog/2015/04/11/iosdan-yuan-ce-shi-xi-lie-dan-yuan-ce-shi-kuang ...
- [iOS翻译]《iOS7 by Tutorials》在Xcode 5里使用单元測试(上)
简单介绍: 单元測试是软件开发的一个重要方面.毕竟,单元測试能够帮你找到bug和崩溃原因,而程序崩溃是Apple在审查时拒绝app上架的首要原因. 单元測试不是万能的,但Apple把它作为开发工具包的 ...
- iOS 单元測试之XCTest具体解释(一)
原创blog,转载请注明出处 blog.csdn.net/hello_hwc 欢迎关注我的iOS-SDK具体解释专栏 http://blog.csdn.net/column/details/huang ...
- 软件測试、ios中的測试概念以及步骤
软件測试: 软件測试的目标是应该服务于软件项目的目标,能够通过建议反馈使用更加高效的方法和工具,提升软件开发效率以及软件开发质量.同一时候还能够通过过一些手段,更早.更快.很多其它地发现缺陷.从容减少 ...
- 让你提前认识软件开发(19):C语言中的协议及单元測试演示样例
第1部分 又一次认识C语言 C语言中的协议及单元測试演示样例 [文章摘要] 在实际的软件开发项目中.常常要实现多个模块之间的通信.这就须要大家约定好相互之间的通信协议,各自依照协议来收发和解析消息. ...
- Java单元測试工具JUnit 5新特性一览
Java单元測试工具JUnit 5新特性一览 作者:chszs,未经博主同意不得转载. 经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs JUnit是最流行的开源 ...
- 利用Continuous Testing实现Eclipse环境自己主动单元測试
当你Eclipse环境中改动项目中的某个方法时,你可能因为各种原因没有执行单元測试,结果代码提交,悲剧就可能随之而来. 所幸infinitest(http://infinitest.github.io ...
- 在Eclipse中使用JUnit4进行单元測试(0基础篇)
本文绝大部分内容引自这篇文章: http://www.devx.com/Java/Article/31983/0/page/1 我们在编写大型程序的时候,须要写成千上万个方法或函数,这些函数的功能可能 ...
随机推荐
- PCL点云特征描述与提取(2)
点特征直方图(PFH)描述子 正如点特征表示法所示,表面法线和曲率估计是某个点周围的几何特征基本表示法.虽然计算非常快速容易,但是无法获得太多信息,因为它们只使用很少的几个参数值来近似表示一个点的k邻 ...
- jQuery&CSS 顶部和底部固定浮动工具栏 兼容IE6
http://www.cnblogs.com/lhj588/archive/2013/04/02/2994639.html —————————————————————————————————————— ...
- Casual Note of OS
20170104 冯诺依曼计算机(遵循冯诺依曼结构设计的计算机:存储器.运算器.控制器.输入设备.输出设备)之前也有计算机,不过在那之前的计算机是专用的,不可编程,只能干特定的事情没法干其他事.与之前 ...
- jquery 实现下拉菜单
Jquery 是一个轻量的框架,个人认为非常好用,今天就写一个非常简单的例子,实现下拉菜单功能: 首先肯定要在页面引用jquery.js 版本不限 : 接下来把=================== ...
- Chart控件使用初步
学习了Chart控件的初步使用方法,生成柱形图和饼图. <asp:Chart ID="Chart1" runat="server" Width=&q ...
- Hadoop开发相关问题
总结自己在Hadoop开发中遇到的问题,主要在mapreduce代码执行方面.大部分来自日常代码执行错误的解决方法,还有一些是对Java.Hadoop剖析.对于问题,通过查询stackoverflow ...
- MD5骨骼动画模型加载(一)
前面我们分析了静态模型OBJ格式,桢动画模型MD2,这篇主要分析骨骼动画MD5的一些概念并且实现. 混合桢动画有计算简单,容易实现等优点,但是在需要比较细致的效果时,则需要更多的关键桢,每桢都添加相同 ...
- Luhn算法检验和验证
一.Luhn公式介绍 Luhn公式是一种广泛使用的系统,用于对标识号进行验证.它根据原始标识号,把每隔一个数字的值扩大一倍.然后把各个单独数字的值加在一起(如果扩大一倍后的值为2个数字,就把这两个数字 ...
- C++多线程中调用python api函数
错误场景:一直等待全局锁. 解决方法: 一.首先定义一个封装类,主要是保证PyGILState_Ensure, PyGILState_Release配对使用,而且这个类是可以嵌套使用的. #inclu ...
- git中报unable to auto-detect email address 错误的解决拌办法
昨天刚配置好的git,今天刚要commit一些修改,就遇到了这个问题** Please tell me who you are. Run git config --global user.email ...