- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用Xcode进行单元测试
一、单元测试简介
单元测试是指对项目工程中每一个小的模块来单独进行测试,这些模块可以指一个方法、一个类或者一系列的类组成的一个功能模块。
单元测试的目的就是验证这些模块是否按照预想的逻辑去执行。只有每个模块都能正常运作,最后的应用程序运行时才不会出错。
编写单元测试能够提前发现模块中存在的问题并及时解决,如果不进行单元测试,而是在App所有代码完成时直接看运行效果,这个时候可能会有多个模块同时存在各种各样的问题,同时来解决这些问题肯定会有非常大的难度,所以应尽量避免出现这种情况。下面我们就来介绍怎么使用 XCTest框架来进行单元测试
二、使用 XCTest 框架进行单元测试
在最新的 Xcode 7 中,Apple 为我们提供了XCTest 框架来进行测试,它不仅可以用来进行单元测试,还可以配合模拟器进行 UI 相关的测试。这里我们主要介绍单元测试的用法,UI 测试就不涉及了。
1、为工程添加测试支持
如果是新的工程,在创建的时候选中Inclue Unit Tests,Xcode 会自动为我们创建测试需要的样板代码;?
如果是已有工程的话, 可以在Project info界面按图中的方式给工程添加测试支持:?
然后工程中会多出一个ProjectNameTests的group,并且有一个已经创建好的XCTest的类,下面是这个类的结构:
import XCTest
class UnitTestDemoTests: XCTestCase {
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
func testExample() {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
func testPerformanceExample() {
// This is an example of a performance test case.
self.measureBlock {
// Put the code you want to measure the time of here.
}
}
}
这是一个继承自XCTestCase 的类,一般单元测试所要用的功能都在这个类里,下面介绍一下这几个方法的含义:
testExample - 这是一个自动生成的测试用例方法,每一个测试用例都需要以test开头,后面可以跟上测试的具体内容,在每个test方法所在的行号旁边,都有一个菱形的图标,点击它就可以运行相应的测试用例。同样,在当前类上也有一个这样的图标,点击的话会运行该类里所有的测试用例。?
setUp - 这是一个用来进行初始化的方法,运行每一个测试用例之前,都会先运行这个方法,所以一般会把一些重复的代码放到这里来初始化。
tearDown - 这个方法是每个测试用例运行完成后执行的,可以用来进行释放资源等操作
testPerformanceExample - 也是一个测试用例,它内部通过一个 self.measureBlock 闭包来测试代码的性能。把要测试的代码写到这个闭包里,就可以得出这段代码的运行时间。
使用XCTAssert***编写测试用例
上面介绍了单元测试的基本配置,接下来我们来看一下怎么编写测试用例来测试我们的代码。
XCTest 框架为我们定义了以 XCTAssert 开头的断言,可以很方便的来测试代码的运行结果,下面简单介绍几个
XCTAssertTrue(expression: BooleanType) - 这个方法用来判断expression是否为true
XCTAssertNil(expression
您可能关注的文档
- 虚拟实训 实训攻略 如何使用粉丝通.doc
- 虚拟实训 实训攻略 如何写第一篇博文内容.doc
- 虚拟实训 实训攻略 使用微博橱窗做限时秒杀.doc
- 虚拟实训 实训攻略 微博粉丝分析.doc
- 虚拟实训 实训攻略 微博内容分析.doc
- 虚拟实训 实训攻略 微博相关账号分析.doc
- 虚拟实训 实训攻略 文案视觉化缘由和方法.doc
- 虚拟实训 实训攻略 走在高科技前沿的汾酒,开创了“一物一码”新营销 - 副本.doc
- 虚拟现实程序开发 6.物理引擎 6.3 物理材质.docx
- 虚拟现实程序设计基础 虚拟现实程序设计基础 Unity3D中的线性插值Lerp()函数解析.docx
- 移动应用软件开发综合实训(基于iOS平台)-2017 Xcode设备管理工具使用 XCode 如何添加调试设备.docx
- 移动应用软件开发综合实训(基于iOS平台)-2017 朝向和运动检测 Core Motion框架使用方法.docx
- 移动应用软件开发综合实训(基于iOS平台)-2017 粒子效果 SpriteKit-粒子效果-SKEmitterNode.docx
- 移动应用软件开发综合实训(基于iOS平台)-2017 生成二维码 iOS 二维码扫描.docx
- 移动应用软件开发综合实训(基于iOS平台)-2017 使用AVPlayer播放网络音乐和视频 AVPlayer 本地、网络视频播放相关.docx
- 移动游戏开发综合实训-2017 PS色彩运用 PS色彩运用3_PS色彩配色运用.doc
- 移动游戏开发综合实训-2017 Unity3D手游开发:如何实现最高分的存储与显示 游戏开发-碰撞设置与检测.docx
- 移动游戏开发综合实训-2017 拆分UV 拆分UV(下).docx
- 移动游戏开发综合实训-2017 场景设计 场景设计2_场景概念设计.docx
- 移动游戏开发综合实训-2017 管理资源依赖关系 管理资源依赖关系.docx
文档评论(0)