




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、iOS 接口测试分享中国移动杭州研发中心2016年2月* 目录什么是iOS接口测试为什么要做iOS接口测试12iOS接口测试介绍3XCTest测试框架简介4测试举例5什么是iOS接口测试?SDK的英文全名是Software Development Kit(软件开发工具包),一般是一些由第三方服务商提供,用于实现应用软件产品某项功能的工具包,通常以集合API、文档、工具的形式出现。iOS SDK是一堆 iOS接口的集合,接口接口也就是函数,包括系统之间的调用、服务之间的调用等。接口测试接口测试就是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。
2、测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 iOS接口测试接口测试是对暴露到外部的接口进行的测试,一个接口方法会有自己特定的业务定义,所以做接口测试时更多需要从业务的角度去考虑如何测试这个接口,同时还需要根据接口本身的定义对参数限制进行测试。为什么要做iOS接口测试?p功能a) 接口是外部用户使用的直接对象,作为SDK提供商,我们一定要保证提供给外部用户使用的接口方法具有稳定的功能和健壮的容错性。p效率a) 首先,节省测试成本。根据数据模型推算,底层的一个bug能够引发上层的8个左右bug,而且底层的bug很容易引起业务层更多的问题。相反接口测试能够提供
3、系统复杂度上升情况下的低成本高效率的解决方案。b) 其次,接口测试不同于传统开发的单元测试,接口测试是站在用户的角度对系统接口进行全面高效持续的检测。c) 最后,接口测试是自动化并且可以持续集成的,这也是为什么接口测试能够低成本高收益的根源。总之,接口测试是保证高复杂性系统质量的内在要求和低成本的经济利益的驱动作用下的最佳解决方案。iOS接口测试介绍1. 通过Xcode创建一个工程,导入被测SDK,编写测试脚本,然后执行测试。2. 每一个测试用例,其本质是一个函数,该函数中包含调用被测方法的过程。3. 某一被测方法会有多个测试用例,一般情况将同一被测方法的测试用例放在同一个测试类中,将同一类中
4、的被测方法的测试脚本放在同一组中。12iOS接口测试介绍34XCTest 作为测试框架是因为它非常简单并且与 Xcode 的 IDE 直接集成。XCTest 如何工作如何工作苹果提供了一些关于如何使用 XCTest 的官方文档。测试用例被分到继承 XCTestCase 的不同子类中去。因为测试用例都是简单的类和方法,所以我们可以适当地添加一些 property 和辅助方法。考虑到代码的重用性,我们的所有测试用例类都有一个共同的父类,也就是 TestCase,它也是 XCTestCase 的子类,所有的测试类都是我们的 TestCase 类的子类。命名要求命名要求因为测试用例仅仅只是一个以tes
5、t为开头的方法,所以典型的测试用例方法看起来就像这样:- (void)testRegisterFunc / test codeXCTest测试框架简介Xcode6之后,新建的工程默认包含一个“工程名+Tests”的文件夹,文件夹下有一个工程名+Tests.m的文件(和其他的类文件不一样的是没有.h头文件),该文件中默认包含有setUp和tearDown的方法。- (void)setUp super setUp; / Put setup code here. This method is called before the invocation of each test method in th
6、e class.- (void)tearDown / Put teardown code here. This method is called after the invocation of each test method in the class. super tearDown; setUp & tearDownsetUp方法在XCTestCase的测试方法调用之前调用。当测试全部结束之后调用tearDown方法。setUp方法可以在测试之前创建在test case方法中需要用到的一些对象等。tearDown方法则在全部的test case执行结束之后清理测试现场,释放资源删除不
7、用的对象等。XCTest测试框架简介功能测试功能测试test case中的每一个方法都是test开头,这样容易辨识。方法中会执行断言(Assertion),来判断这个测试是否通过。被测方法如果采用Block回调或者代理模式,它们的测试方式略有不同。 Block回调测试方式XCTest测试框架简介 代理模式测试方式: XCTest测试框架简介XCTest测试框架简介常用的常用的XCTest断言断言XCTest会用到很多的断言,但是只有一部分是常用到的。1)基本)基本测试测试XCTAssert(expression, format.)如果expression(表达式)执行的结果为true的话,这个
8、测试通过。否则测试失败,并在console中输出后面的format字符串。2)Bool测试测试对于bool型的数据,或者只是简单的bool型的表达式,使用XCTestAssertTrue或者XCTestAssertFalse:XCTAssertTrue(expression, format.) XCTAssertFalse(expression, format.)3)相等)相等测试测试测试两个值是否相等使用XCTAssertNotEqual:XCTAssertEqual(expression1, expression2, format.) XCTAssertNotEqual(expressio
9、n1, expression2, format.)XCTest测试框架简介XCTAssertGreaterThanOrEqual & XCTAssertLessThanOrEqual, 和下面的条件操作符比较的是一个意思 = with , =, 以及 = 在Double、Float型数据的对比中使用XCTAssertNotEqualWithAccuracy来处理浮点精度的问题:XCTAssertEqualWithAccuracy(expression1, expression2, accuracy, format.) XCTAssertNotEqualWithAccuracy(expr
10、ession1, expression2, accuracy, format.)4)Nil测试测试使用XCTAssertNotNil断言判断给定的表达式值是否为nil:XCTAssertNil(expression, format.) XCTAssertNotNil(expression, format.)5)无条件)无条件失败断言失败断言XCTFail提供的是无条件断言:XCTFail(format.)无条件都是测试失败。这个断言有什么用处呢?在测试驱动里有这么个情况,你定义了测试方法,但是没有给出具体的实现。那么你不会希望这个测试能通过的。是的,XCTFail就是这么个用途。一般被用作一个
11、占位断言,等你的测试方法完善好了之后再换成最贴近你的测试的断言。XCTest测试框架简介XCTestExpectation异步异步测试测试Xcode单元测试中加入的最令人兴奋的功能也许就是类XCTestExpression类带入的异步测试了。现在测试可以等待指定长度的时间,一直到某些条件符合的时候在开始测试。要使用异步测试,首先,用方法expectationWithDescription创建一个expection。XCTestExpectation *expect = self expectationWithDescription:Handler Called;然后,在方法的最后添加方法wai
12、tForExpectationsWithTimeout,指定等待超时的时间和指定时间内条件无法满足时执行的closure。 self waitForExpectationsWithTimeout:50 handler:nil;剩下的就是在异步测试剩下的回调函数中告诉expectation条件已经满足。expect fulfill;如果在测试中有多个expectation,则每个expectation都必须fulfill,否则测试不通过。XCTest测试框架简介接口举例:注册(void)registerWithNoPhoneUserName:(NSString *)userNameuserPas
13、sword:(NSString *) userPasswordaffirmPassword:(NSString *) affirmPasswordnikeName:(NSString *) nikeNameregisterSuccessful:(registersucessful )registerSuccessFulregisterfail:(registerFail )registerfail;测试举例(void)testRegisterWithUserHasExist / This is an example of a functional test case. NSString * u
14、srName = 661350; NSString * usrPwd = 123456; NSString * affPwd = 123456; NSString * myNickName = 1350Test; XCTestExpectation *expect = self expectationWithDescription:Handler Called; XMPPManager defaultManagerregisterWithNoPhoneUserName:usrName userPassword:usrPwd affirmPassword:affPwd nikeName:myNickName registerSuccessful: expect fulfill; NSLog(cjl =注册
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业档案管理保密管理培训
- 中小学生做有责任感的人主题班会
- 大学物理学 第一卷 经典物理基础 第6版 课件 7 机械振动
- 商标许可分销合同(2篇)
- 各类技术服务合同
- 家居设备采购协议
- 冷库入口管理协议
- 中层管理者培训体会
- 患者出院护理操作流程
- 怎介绍旅游景点
- 观赏鱼国际贸易的可持续发展策略
- 2024年思政考试准备试题及答案
- 2024年娄底市公安局警务辅助人员招聘考试真题
- 总经理聘任合同模板7篇
- 《园林微景观设计与制作》课件-项目四 微景观展示
- PLC应用技术课件 任务6. S7-1200 PLC控制电动机正反转
- 福建省龙岩市2024届高考一模地理试题(含答案)(含答案)
- 天津市和平区2023-2024学年八年级下学期期末物理试题【含答案、解析】
- 《教育强国建设规划纲要(2024-2035年)》解读与培训 (五)
- 新版《医疗器械经营质量管理规范》(2024)培训试题及答案
- 2025年初级社会工作者综合能力全国考试题库(含答案)
评论
0/150
提交评论