• 高质量的测试 —— 《clean code》读后感


       TDD让你的代码可扩展、可维护、可复用,有了测试你就不担心对代码的修改!没有测试,每次修改都可能带来缺陷。无论架构多有扩展性,无论设计划分得有多好,没有了测试,你就很难做改动,因为你担心改动会不会引入不可预知的缺陷。

        TDD有三定律:

    1)在编写不能通过的单元测试前,不可编写生产代码;

    2)只可编写刚好无法通过的单元,不能编译也不算通过;

    3)只可编写刚好足以通过当前失败测试的生产代码。

         这三条定律将你限制在大概30少一个的循环中。测试与生产代码一起编写,测试只比生产代码早写几秒钟。

          这样写程序,我们每天会编写数十个测试,每个月编写数百个测试,每年编写数千个测试。这样写程序,测试将覆盖所有生产代码。测试代码量足以匹敌生产代码量,导致令人生畏的管理问题。

          为了避免这个问题,高质量的测试应如下:

    1)测试代码和生产代码一样重要,测试代码的腐坏会直接导致生产代码的腐坏,要重视测试代码的质量。

    2)整洁的测试有三个要素:可读性,可读性和可读性。

    3)如何保持可读性呢?和函数一样,要保持代码的自我解释性,要简短,命名有意义,要有抽象分层。

    4)每个测试应保持断言数最少,这点类似于函数的“只做一件事”。

    5)快速,测试应该够快,如果不快,就不会让程序员愿意去使用它了。而测试的目标应该是提倡程序员频繁使用。

    6)独立。测试与测试之间应该没有依赖,保持每个测试都是独立的。

    7)可重复性。 测试应在任何环境都可以重复通过,让代码不过于有针对性,对环境产生依赖。

    8)自足验证。 测试应该有布尔值输出,非常直观地反映测试是否通过。你不应该查看日志文件来确认是否通过测试,也不应该手工对比两个不同文本文件来确认是否通过测试,如果测试不能自足验证,对失败的判断就会变量依赖主观,而运行测试也需要更长的手工操作时间。

    9)及时。 测试应及时编写。单元测试应该恰好在使其通过的生产代码之前编写。

      

  • 相关阅读:
    递归的形式过程
    c/c++程序员常见面试题分析(转)
    深入理解递归函数的调用过程(转)
    C语言union关键字
    中国象棋(java)
    求树中最低的公共祖先
    什么是Complement(补码)?
    LoadRunner,各协议之间的区别
    淘宝模板制作[店铺装修]学习过程+心得
    Tips of QTP
  • 原文地址:https://www.cnblogs.com/cly84920/p/4426808.html
Copyright © 2020-2023  润新知