标签:
最近阅读了一本涉及到单元测试和重构知识的书--《驯服烂代码》。这本书中讲到了什么是烂代码,在编程过程中怎样避免产出烂代码,更重要的是可以尽量避免写bug,代码写的漂亮对日后的维护工作影响很大。记得自己第一次写项目的时候,满满地输出bug,而且那会还不懂得如何优化代码,后果就是那会每增加一些需求或改变一些需求,都是硬直头皮无止的加班。题外话,幸好持续时间不算长。
接下来我总结一下通过这本书习得的一些技巧:
part1.关于测试用例驱动开发的好处。
part2.关于重构,在第十三章到第十五章当中提及到。
1.没有自动化测试的代码重构就是“裸奔”。
2.步骤:(1)消除重复和命名不规则的代码。
(2)将同类型的变量抽取出一个新的类。
(3)消除魔法数,尽可能使用变量名。优化多层嵌套的if-else语句,通过return提高代码可读性。消除判断语句中条件不易读的问题。
part3.编写单元测试的过程和处理依赖关系。
1.单元测试过程:先写测试的Assert部分的意图代码,然后再推导出Action和Arrange部分的测试意图代码,并通过修复意图代码的编译和测试运行错误,来驱动出生产代码。
2.处理依赖关系过程涉及到的一些名词概念:
(1)被测系统(System Under Test,简称SUT)
(2)依赖组件(Depended On Component,简称DOC)与之等价的测试替身(Test Double),Stub和Mock都属于测试替身。前面所说的与之等价,是指同样被被测试系统所依赖作用,但是测试替身比依赖组件所被被测系统的依赖程度更低。通常会将测试替身定义为接口或者定义为父类当接口使用。
(3)Stub和Mock都是测试替身,那么Stub和Mock的区别在于,Stub控制输入,管理各种测试用到的情况。Mock除了控制输入还控制了输出,验证结果。
最后附上xcode上如何使用单元测试:
http://www.cocoachina.com/ios/20140715/9144.html
http://www.cocoachina.com/ios/20140715/9145.html
标签:
原文地址:http://www.cnblogs.com/huen/p/5649434.html