编写代码与测试的结合

定义API的需求

为添加到项目中的每个方法或者函数定义需求和结果。

对于需求,包括输入和输出范围,exceptions 抛出异常,条件限制,以及返回值的类型(尤其如果值是类的实例时)。

定义要求并确保满足代码中的需求可以帮助你编写出健壮的安全的代码。

边写边测

每当你设计和编写一个方法或函数时,就应该编写一个或多个测试用例来确保API的需求得到满足。

(为现有代码编写测试要比为你正在编写的代码"难"得多)

检查边界条件

如果对一个方法的参数值必须在特定范围内,你的测试应包括该范围的最低值和最高值。(边界测试)

使用negative测试(就是用错误的条件测试输出错误的结果)

negative 测试可以确保您的代码能适当地响应出错的条件。

当收到无效的或意外的输入值时,它可以验证代码的行为。同样的,还可以验证它返回错误代码或引发异常时的行为。

例如,如果一个整数参数范围必须为 0?100(包含首尾值),创建测试用例并传值 -1 和 101,以确保该程序能引发一个异常或返回一个错误代码。

编写全面的测试用例(即为:集成测试)

全面的测试通过结合不同的代码模块来实现API的一些更复杂的行为。

虽然简单,隔离测试提供值,堆叠测试表现复杂的行为,这样能捕获住更多的问题。这些类型的测试在更现实的条件下模拟你的代码的行为。

例如,除了将对象添加到数组,你还可以创建数组,为之添加几个对象,使用不同的方法删除若干对象,然后确保集合以及其余对象的数量是正确的。

使用测试用例覆盖bug修复

每当你修复完一个 bug,都要编写一个或多个测试用例,来验证此次修复的有效性。

参考链接

http://www.cocoachina.com/ios/20140717/9167.html

链接 "命令行测试部分"  ———xcodebuild 命令行工具来进行测试。

http://www.cocoachina.com/ios/20140716/9154.html 有关继承测试可以设置断点

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-06 03:42:49

编写代码与测试的结合的相关文章

无需编写代码,用接口管理工具 eoLinker 高效完成API测试流程相关业务

引言 作为开发人员,有时需要协助市场部门进行开发,比如在市场推广中,经常通过给用户赠送优惠券来提高复购率.这篇文章,将介绍如何使用接口管理工具 eoLinker 的自动化测试 [UI模式] 构建此业务逻辑. 关键词 市场推广.定时任务.数据关联 接下来,我们以给用户赠送优惠券为例进行流程的搭建.搭建完整个流程后,你会发现不再需要编写复杂的代码了,只需简单几步就能完成. 目录 1.流程设计 2.流程调试 3.定时任务 4.使用tips 5.小结 1.流程设计 我们先确定完成该业务逻辑需要用到的接口

在线捉鬼游戏开发之三 - 代码与测试(鬼讨论、鬼投票)

-----------回顾分割线----------- 此系列旨在开发类似“谁是卧底+杀人游戏”的捉鬼游戏在线版,记录从分析游戏开始的开发全过程,通过此项目让自己熟悉面向对象的SOLID原则,提高对设计模式.重构的理解. 索引目录: 0. 索引(持续更新中) 1. 游戏流程介绍与技术选用 2. 设计业务对象与对象职责划分(1)(图解旧版本) 3. 设计业务对象与对象职责划分(2)(旧版本代码剖析) 4. 设计业务对象与对象职责划分(3)(新版本业务对象设计) 5. 业务对象核心代码编写与单元测试

Magicodes.NET框架之路——让Magicodes.NET帮你编写代码

时间总是过得很快,而我几乎没有时间来安安静静的写博客和完善文档.不过总算是框架在一直前进,而我的计划是在今年年底(公历)前,让此框架成熟稳定. 在很长一段时间里,我尝试了很多我之前没有接触的技术或者没用过的技术,比如knockoutJs.OData.T4等等,也许走了很多弯路,也许对框架作用并不大,但是却对我而言却很有价值.只有用过了才知道其可用程度和适用场景,没有使用过就没有发言权. 框架也在不断的重构,我不想照抄别人的路子,我只想做一款有特色的框架,安安静静编码,踏踏实实前进,怎么个特色法呢

DIV+CSS:如何编写代码才能更有效率

如何编写CSS代码才能更有效率?这是许多网页制作者与开发者都关心的问题.大概没有什么魔法,可以保证一下就把你的样式表缩小到百分之多少,但合理的 CSS 编码与组织技巧,的确能够帮助你的更有效率地写出更清晰高效的代码,自然,样式表大小的缩减还能减少下载的时间. 一.排版: 1.关键词和操作符之间加适当的空格. 2.相对独立的程序块与块之间加空行 3.较长的语句.表达式等要分成多行书写. 4.划分出的新行要进行适应的缩进,使排版整齐,语句可读. 5.长表达式要在低优先级操作符处划分新行,操作符放在新

在线捉鬼游戏开发之三 - 代码与测试(玩家发言)

-----------回顾分割线----------- 此系列旨在开发类似“谁是卧底+杀人游戏”的捉鬼游戏在线版,记录从分析游戏开始的开发全过程,通过此项目让自己熟悉面向对象的SOLID原则,提高对设计模式.重构的理解. 索引目录: 0. 索引(持续更新中) 1. 游戏流程介绍与技术选用 2. 设计业务对象与对象职责划分(1)(图解旧版本) 3. 设计业务对象与对象职责划分(2)(旧版本代码剖析) 4. 设计业务对象与对象职责划分(3)(新版本业务对象设计) 5. 业务对象核心代码编写与单元测试

自己编写高负荷测试的工具

最近一个项目,客户要求进行高负荷测试:所谓高负荷测试时看系统在CPU占用或MEM占用率极高情况下的表现. 在第一轮测试时,我们通过在LINUX操作系统上,用压缩和解压缩的方法去占用CPU,这样的方法有个弊端,就是比较耗时而且不可控. 在这样的测试情况下,客户非常不满意.提出了很多的问题. 还要客户给了第二轮测试的机会,然后我就通过百度或谷歌,寻找高负荷测试的工具.结果一无所获.我后来想做为一个程序员,是否可以自己动手写一个这样的程序呢? 通过分析原理,占用CPU,就是让CPU可劲的进行运算:占用

程序员最艰巨的任务跟编写代码没有多少关系

去年看到的文章,记在了EverNote中,今天做总结时又看了一下,贴在这里吧. 程序员最艰巨的任务跟编写代码没有多少关系.编码是逻辑思路的一种实践,这跟程序员日常工作中的其它任务比起来相对简单.如果你认为自己还是一个水平一般的程序员,在你真正的能进入到高手行列前,请确保你已经克服了下列晋级的障碍. 1. 解释你在干什么 解释软件开发过程是一个很困难的事情.那些非程序员职业的人也许知道很多关于编程的事情,但很显然,他们不会编程.对于他们来说,我们的生活就是在一间黑暗的屋子里趴在键盘前消耗着咖啡.

在线捉鬼游戏开发之三 - 代码与测试(玩家投票)

-----------回顾分割线----------- 此系列旨在开发类似“谁是卧底+杀人游戏”的捉鬼游戏在线版,记录从分析游戏开始的开发全过程,通过此项目让自己熟悉面向对象的SOLID原则,提高对设计模式.重构的理解. 索引目录: 0. 索引(持续更新中) 1. 游戏流程介绍与技术选用 2. 设计业务对象与对象职责划分(1)(图解旧版本) 3. 设计业务对象与对象职责划分(2)(旧版本代码剖析) 4. 设计业务对象与对象职责划分(3)(新版本业务对象设计) 5. 业务对象核心代码编写与单元测试

用基类编写干XCUITest测试

在我们以前的职位在设置XCUITest框架时,我们用Xcode 10建立并运行了一个示例XCUITest.Apple的XCUITest框架使我们能够记录基本的用户行程,从而开始使用XCUITest,但是所记录的测试不具有可伸缩性和可重用性.我们必须努力提高XCUITest的可读性.可伸缩性.可维护性和可重用性. 按照上一篇文章中提到的方法,我们可以添加更多的UI测试,但是会有大量的代码重复,这会使我们的UI测试很难维护和修复.编写自动化测试非常容易,但随着项目的规模和复杂性的增加,编写可靠的测试