iOS接口测试分享PPT课件_第1页
iOS接口测试分享PPT课件_第2页
iOS接口测试分享PPT课件_第3页
iOS接口测试分享PPT课件_第4页
iOS接口测试分享PPT课件_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

iOS接口测试分享,中国移动杭州研发中心2016年2月,*,目录,什么是iOS接口测试,为什么要做iOS接口测试,1,2,iOS接口测试介绍,3,XCTest测试框架简介,4,测试举例,5,什么是iOS接口测试?,SDK的英文全名是SoftwareDevelopmentKit(软件开发工具包),一般是一些由第三方服务商提供,用于实现应用软件产品某项功能的工具包,通常以集合API、文档、工具的形式出现。iOSSDK是一堆iOS接口的集合,接口也就是函数,包括系统之间的调用、服务之间的调用等。接口测试就是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。iOS接口测试是对暴露到外部的接口进行的测试,一个接口方法会有自己特定的业务定义,所以做接口测试时更多需要从业务的角度去考虑如何测试这个接口,同时还需要根据接口本身的定义对参数限制进行测试。,为什么要做iOS接口测试?,功能接口是外部用户使用的直接对象,作为SDK提供商,我们一定要保证提供给外部用户使用的接口方法具有稳定的功能和健壮的容错性。效率首先,节省测试成本。根据数据模型推算,底层的一个bug能够引发上层的8个左右bug,而且底层的bug很容易引起业务层更多的问题。相反接口测试能够提供系统复杂度上升情况下的低成本高效率的解决方案。其次,接口测试不同于传统开发的单元测试,接口测试是站在用户的角度对系统接口进行全面高效持续的检测。最后,接口测试是自动化并且可以持续集成的,这也是为什么接口测试能够低成本高收益的根源。,总之,接口测试是保证高复杂性系统质量的内在要求和低成本的经济利益的驱动作用下的最佳解决方案。,iOS接口测试介绍,通过Xcode创建一个工程,导入被测SDK,编写测试脚本,然后执行测试。每一个测试用例,其本质是一个函数,该函数中包含调用被测方法的过程。某一被测方法会有多个测试用例,一般情况将同一被测方法的测试用例放在同一个测试类中,将同一类中的被测方法的测试脚本放在同一组中。,1,2,iOS接口测试介绍,3,4,XCTest作为测试框架是因为它非常简单并且与Xcode的IDE直接集成。XCTest如何工作苹果提供了一些关于如何使用XCTest的官方文档。测试用例被分到继承XCTestCase的不同子类中去。因为测试用例都是简单的类和方法,所以我们可以适当地添加一些property和辅助方法。考虑到代码的重用性,我们的所有测试用例类都有一个共同的父类,也就是TestCase,它也是XCTestCase的子类,所有的测试类都是我们的TestCase类的子类。命名要求因为测试用例仅仅只是一个以test为开头的方法,所以典型的测试用例方法看起来就像这样:-(void)testRegisterFunc/testcode,XCTest测试框架简介,Xcode6之后,新建的工程默认包含一个“工程名+Tests”的文件夹,文件夹下有一个工程名+Tests.m的文件(和其他的类文件不一样的是没有.h头文件),该文件中默认包含有setUp和tearDown的方法。-(void)setUpsupersetUp;/Putsetupcodehere.Thismethodiscalledbeforetheinvocationofeachtestmethodintheclass.-(void)tearDown/Putteardowncodehere.Thismethodiscalledaftertheinvocationofeachtestmethodintheclass.supertearDown;setUp然后,在方法的最后添加方法waitForExpectationsWithTimeout,指定等待超时的时间和指定时间内条件无法满足时执行的closure。selfwaitForExpectationsWithTimeout:50handler:nil;剩下的就是在异步测试剩下的回调函数中告诉expectation条件已经满足。expectfulfill;如果在测试中有多个expectation,则每个expectation都必须fulfill,否则测试不通过。,XCTest测试框架简介,接口举例:注册(void)registerWithNoPhoneUserName:(NSString*)userNameuserPassword:(NSString*)userPasswordaffirmPassword:(NSString*)affirmPasswordnikeName:(NSString*)nikeNameregisterSuccessful:(registersucessful)registerSuccessFulregisterfail:(registerFail)registerfail;,测试举例,(void)testRegisterWithUserHasExist/Thisisanexampleofafunctionaltestcase.NSString*usrName=661350;NSString*usrPwd=123456;NSString*affPwd=123456;NSString*myNickName=1350Test;XCTestExpectation*expect=selfexpectationWithDescription:HandlerCalled;XMPPManagerdefaultManagerregisterWithNoPhoneUserName:usrNameuserPassword:usrPwdaffirmPassword:affPwdnikeName:myNickNameregisterSuccessful:expectfulfill;NSLog(cjl=注册成功!=);XCTFail(.);registerfail:(NSString*error)expectfulfill;NSLog(cjl=注册失败!失败原因:%=,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论