zoukankan      html  css  js  c++  java
  • 高质量的测试 —— 《clean code》读后感

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

        TDD有三定律:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      

  • 相关阅读:
    UPC 5130 Concerts
    poj 1079 Calendar Game
    2018 ACM-ICPC 中国大学生程序设计竞赛线上赛
    CF932E
    浅谈Tarjan算法
    拉格朗日差值
    扩展欧几里得算法(exgcd)
    欧拉定理
    莫比乌斯反演
    除法分块
  • 原文地址:https://www.cnblogs.com/cly84920/p/4426808.html
Copyright © 2011-2022 走看看