• iOS TDD


          最近阅读了一本涉及到单元测试和重构知识的书--《驯服烂代码》。这本书中讲到了什么是烂代码,在编程过程中怎样避免产出烂代码,更重要的是可以尽量避免写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

      part2相关代码:

        重构之前的代码 https://github.com/jbrains/trivia/tree/master/objective-c

        重构之后的代码 https://github.com/forrHuen/TTD_iOS_DEMO

  • 相关阅读:
    实例天天向上的力量
    实例天天向上的力量
    数字类型及操作
    基本数据类型
    函数与模块
    Turtle库(海龟)
    python猛蛇绘制
    输出函数
    循环语句
    集合
  • 原文地址:https://www.cnblogs.com/huen/p/5649434.html
Copyright © 2020-2023  润新知