iOS单元测试(作用及入门提升)

发表于:2016-5-26 10:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:RasonWu    来源:51Testing软件测试网采编

  由于只是一些简单实用的东西,学学还是挺不错的。其实单元测试用的好,开发起来也会快很多。单元测试对于我目前来说,就是为了方便测试一些功能是否正常运行,还有调试接口是否能正常使用。有时候你可能是为了测试某一个网络接口,然后每次都重新启动并且经过很多操作之后才测试到了那个网络接口。如果使用了单元测试,就可以直接测试那个方法,相对方便很多。 比如由于修改较多,我们想测试一下分享功能是否正常,这时候就有用了。(而不是重新启动程序,进入到分享界面,点击分享,填写分享内容。)其实单元测试并没有降低我们打代码的效率,我们可以在单元测试通过了,直接用到相应的地方。
  当然也有一些高级的作用,比如自动发布、自动测试(特别在一些大的项目,以防止程序被误改或引起新的问题)。
  现在,让我们先理清一下单元测试到底有些什么东西?
  OCUnit(即用XCTest进行测试)其实就是苹果自带的测试框架,我们主要讲的就是这个。GHUnit是一个可视化的测试框架。(有了它,你可以点击APP来决定测试哪个方法,并且可以点击查看测试结果等。)OCMock就是模拟某个方法或者属性的返回值,你可能会疑惑为什么要这样做?使用用模型生成的模型对象,再传进去不就可以了?答案是可以的,但是有特殊的情况。比如你测试的是方法A,方法A里面调用到了方法B,而且方法B是有参数传入,但又不是方法A所提供。这时候,你可以使用OCMock来模拟方法B返回的值。(在不影响测试的情况下,就可以这样去模拟。)除了这些,在没有网络的情况下,也可以通过OCMock模拟返回的数据。UITests就是通过代码化来实现自动点击界面,输入文字等功能。靠人工操作的方式来覆盖所有测试用例是非常困难的,尤其是加入新功能以后,旧的功能也要重新测试一遍,这导致了测试需要花非常多的时间来进行回归测试,这里产生了大量重复的工作,而这些重复的工作有些是可以自动完成的,这时候UITests就可以帮助解决这个问题了。
  最简单的单元测试
  1.新建项目:
 
  2.最简单的测试,注意截图路径的问题
  进入到这个类,setUp是每个测试方法调用前执行,tearDowLICEcapn是每个测试方法调用后执行。testExample是测试方法,和我们新建的没有差别。不过测试方法必须testXXX的格式,且不能有参数,不然不会识别为测试方法。测试方法的执行顺序是字典序排序。
  按快捷键Command + U进行单元测试,这个快捷键是全部测试。
  testExample方法中输入
  NSLog(@"自定义测试testExample");
  int  a= 3;
  XCTAssertTrue(a == 0,"a 不能等于 0");
  点击播放按钮,开始单个方法的测试:
  
  出现如下结果,由于我们断言a是不能等于0的,所以测试没有通过。当然有其它的,用到再看,demo里都有。
  
  进行网络请求的测试
  使用CocoaPods安装AFNetworking和STAlertView(CocoaPods安装和使用教程 )
  Pofile:
  platform :ios, '7.0'
  pod 'AFNetworking', '~> 2.5.0'
  pod 'STAlertView', '~> 1.0.0'
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号