ios专题 - OCUnit
OCUnit是集成在Xcode开发环境的单元测试框架;OCUnit运行必须包含SenTestingKit.framework这个库;
针对需要测试的类,每个类写出自己的TestCase,独立组织一个文件。每个测试类都是继承自SenTestCase类,这里有3个重要的方法需要介绍:
1. -(void)setUp: 每个test方法执行前调用,用于类的创建,一些变量的初始化等
2. -(void)tearDown:每个test方法执行后调用
3. -(void)testXXX:这个是真正运行的测试方法,命名就是不带参数,以test开始。
这里的每个testXXX方法可以在Scheme里面看到,并可以设置是否测试这个方法
开发者的主要工作是自己实现这些无返回值的testXXX方法,一般框架会提供大量的断言方法,如果还是觉得不够丰富,可以使用第三方的库来进行扩充,比如:OCHamcrest。
OCUnit断言介绍:
1.无条件失败(Unconditional Failure)
STFail
让测试用例失败
STFail(failure_description, ...)
参数
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
2.相等测试(Equality Tests)
STAssertEqualObjects
当两个对象不同时,测试失败
STAssertEqualObjects(object_1, object_2, failure_description, ...)
参数
object_1
一个对象
object_2
一个对象
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
说明:当 [object_1 isEqualTo:object_2] 为false时,测试失败
STAssertEquals
当两个值不等的时候测试失败。
STAssertEquals(value_1, value_2, failure_description, ...)
参数
value_1
一个数值,结构体,或联合体。
value_2
一个数值,结构体,或联合体。
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
说明:当value_1 不等于value_2的时候测试失败。
STAssertEqualsWithAccuracy
当两个值的差别大于给定值时,测试失败
STAssertEqualsWithAccuracy(value_1, value_2, accuracy, failure_description, ...)
参数
value_1
一个整型或浮点值。
value_2
一个整型或浮点值。
accuracy
一个整型或浮点值。
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
说明:当value_1和value_2之间相差大于accuracy时,测试失败。
3.空值测试(Nil Tests)
STAssertNil
Fails the test case when a given expression is not nil.
如果给定的表达式不是nil,测试失败。
STAssertNil(expression, failure_description, ...)
参数
expression
要测试的表达式。
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
STAssertNotNil
Fails the test case when a given expression is nil.
当表达式为nil时,测试失败。
STAssertNotNil(expression, failure_description, ...)
参数
expression
要测试的表达式。
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
4.布尔测试(Boolean Tests)
STAssertTrue
如果给定表达式为false,测试失败。
STAssertTrue(expression, failure_description, ...)
参数
expression
要测试的表达式。
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
STAssertFalse
如果给定表达式为true,测试失败。
STAssertFalse(expression, failure_description, ...)
参数
expression
要测试的表达式。
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
5.异常测试(Exception Tests)
STAssertThrows
当表达式不抛异常时,测试失败
STAssertThrows(expression, failure_description, ...)
参数
expression
要测试的表达式。
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
STAssertThrowsSpecific
当表达式不能抛出特定类的异常时,测试失败。
STAssertThrowsSpecific(expression, exception_class, failure_description, ...)
参数
expression
要测试的表达式。
exception_class
异常类
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
说明:当expression不会抛出exception_class的异常时,测试失败。
STAssertThrowsSpecificNamed
当表达式不能抛出特定类指定名称的异常时,测试失败。
STAssertThrowsSpecificNamed(expression, exception_class, exception_name, failure_description, ...)
参数
expression
要测试的表达式。
exception_class
异常类
exception_name
异常名字的字符串
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
说明:当expression不能抛出exception_class类中的名为exception_name的异常时,测试失败。
STAssertNoThrow
如果表达式抛异常,测试失败。
STAssertNoThrow(expression, failure_description, ...)
参数
expression
要测试的表达式。
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
STAssertNoThrowSpecific
当表达式抛出特定类的异常时,测试失败。
STAssertNoThrowSpecific(expression, exception_class, failure_description, ...)
参数
expression
要测试的表达式。
exception_class
异常类
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
说明:当expression抛出exception_class的异常时,测试失败。
STAssertNoThrowSpecificNamed
当表达式抛出特定类指定名称的异常时,测试失败。
STAssertNoThrowSpecificNamed(expression, exception_class, exception_name, failure_description, ...)
参数
expression
要测试的表达式。
exception_class
异常类
exception_name
异常名字的字符串
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
说明:当expression抛出exception_class类中的名为exception_name的异常时,测试失败。
STAssertTrueNoThrow
当表达式为false或者抛异常时,测试失败。
STAssertTrueNoThrow(expression, failure_description, ...)
参数
expression
要测试的表达式。
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
STAssertFalseNoThrow
当表达式为true或者抛异常时,测试失败。
STAssertFalseNoThrow(expression, failure_description, ...)
参数
expression
要测试的表达式。
failure_description
指定你错误消息的格式化字符串,可以为nil
ios专题 - OCUnit的更多相关文章
- ios专题 - 常用设计模式
设计模式:解决编程问题的设计模板 设计模式是一个抽象工具,用于面向对象的软件开发,以及其他领域.它是一个设计模板,在特定背景中,解决一般性的.重复出 现的问题.因此,设计模式是一种针对特定的.具体的设 ...
- ios专题 - 委托模式实现
在ios中,委托模式非常常见,那委托模式是什么? 委托模式是把一个对象把请求给另一个对象处理. 下面见例子: #import <UIKit/UIKit.h> @protocol LQIPe ...
- ios专题 -动画
知识点 : 1)ios 核心动画的基础是图层.图层的基础是CALayer,它是所有核心图层类的父类. 2)CATransaction是核心动画类负责协调多个动画原子显示更新.事务支持嵌套使用. 3)图 ...
- ios专题 - 多线程非GCD(1)
iOS多线程初体验是本文要介绍的内容,iPhone中的线程应用并不是无节制的,官方给出的资料显示iPhone OS下的主线程的堆栈大小是1M,第二个线程开始都是512KB.并且该值不能通过编译器开关或 ...
- ios专题 - 斯坦福大学iOS开发公开课总结
转自:http://blog.devtang.com/blog/2012/02/05/mvc-in-ios-develop/ 前言 iphone开发相关的教程中最有名的,当数斯坦福大学发布的”ipho ...
- ios专题 - socket(1)
二,BSD socket API 简介 BSD socket API 和 winsock API 接口大体差不多,下面将列出比较常用的 API: API接口 讲解 int socket(int add ...
- ios专题 - APP设计流程
网上看到这篇文章,觉得基本的flow很有帮助,转过来收藏了:作者:关于Sarah Parmenter英国艾塞克斯(英国英格兰东南部的郡)Youknowwho设计工作室的创始人,Sarah Parmen ...
- ios专题 - sandbox机制
[原创]http://www.cnblogs.com/luoguoqiang1985 ios在安装APP时,把APP的偏好设置与数据放在sandbox里.sandbox通过一系列细颗粒度控制APP访问 ...
- ios专题 - 单例模式的实现
[原创]http://www.cnblogs.com/luoguoqiang1985 单例模式是什么? 一个类只有一个实例. ----------------------- 这样做有什么好处? 在我的 ...
随机推荐
- python 实现对象模型
# -*- coding:utf-8 -*- """ python 实现对象模型 创建 bmicalcpage 类 """ class bm ...
- 将批量下载的博客导入到手机后,通过豆约翰博客阅读器APP(Android手机)进行浏览,白字黑底,保护眼睛,图文并茂。
首先下面演示的博文来自于以下地址:http://www.douban.com/note/423939291/ 需要先通过博客备份专家将导出的博文导入到手机(还不会用的朋友请先阅读http://www. ...
- [leetcode]重建二叉树(先序和终须) 中序遍和后续
分割后长度相等,就是参数麻烦,p,先序的起始点, ib,ie 终须的结束和开始. /** * Definition for binary tree * public class TreeNode { ...
- [SAN4N学习笔记]使用SysTick精准延时
一.准备工作: 将上一节搭建的LED工程复制一份,命名为"2.systick".这一节主要讲如何使用系统的SysTick节拍定时器来进行精准延时程序. 二.程序编写: S ...
- [TopCoder] SRM_594_DIV2.250
好长一段时间没写博客了,实在是想不出有什么好写的.近期也有对自己的职业做了一点思考,还是整理不出个所以然来,很是烦躁 ... 研究TopCoder已经有一小段时间了,都是在做之前的题目,还没有实际参加 ...
- javascript函数定义表达式和函数声明的区别
在javascript中,函数有两种定义写法,函数定义表达式和函数声明,其例子分别如下所示: var test = function(x){ return x; } function test(x){ ...
- hdoj 1286 找新朋友【欧拉函数】
找新朋友 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- NIO组件Selector详解
Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件.这样,一个单独的线程可以管理多个channel,从而管理多个网络连接. 下面是 ...
- Java NIO使用及原理分析(二)
在第一篇中,我们介绍了NIO中的两个核心对象:缓冲区和通道,在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如 ...
- ios 利用Reveal来调试界面1 --模拟器(步骤详解)
Reveal是一个程序界面调试工具,可以调试iOS apps和tvOS apps.使用Reveal,我们可以在开发时动态地查看和修改应用程序的界面.避免每次修改UI的时候都要重新运行程序.接下来按照规 ...