美文网首页
代码整洁之道【8】-- 单元测试

代码整洁之道【8】-- 单元测试

作者: 大数据Zone | 来源:发表于2021-10-04 15:46 被阅读0次

本章介绍了编写单元测试时候的一些要点。

敏捷和TDD(测试驱动开发)运动鼓舞了很多程序员编写自动化单元测试,但是许多程序员遗漏了一些关于编写好测试程序的更细微却重要的要点。

一、TDD三定律

①在编写不能通过的单元测试前,不可编写生产代码;
②只可编写刚好无法通过的单元测试,不能编译也算不通过;
③只可编写刚好足以通过当前失败测试的生产代码;

二、保持测试整洁

测试代码和生产代码一样重要。测试必须随着生产代码的演进而修改。

正是单元测试使得代码可扩展,可维护,可复用。没有单元测试的保证,就不敢放心地改动代码。测试使代码改动变得可能。

覆盖了生产代码的自动化单元测试能很大程度地保持设计和架构的整洁。有了覆盖率高的测试,可以毫无顾虑地改进架构和设计。

三、整洁的测试

整洁测试的三要素:可读性、可读性、可读性!
在单元测试中,可读性甚至比在生产代码更重要。
测试代码应该和生产代码一样,做到明确、简洁,有足够的表达力,呈现出构造-->测试-->验证的模式。

面向特定领域的测试语言:对于特定领域的测试,可以构造一些函数和工具代码来测试API,不用直接测试目标API;

四、每个测试函数只测一个概念

有的流派认为,Junit中,每个测试函数都应该有且只有一个断言语句(assert)。这条规则虽然有用但是过于苛求了。更好的做法是单个测试中断言的数量应该最小化,每个测试函数只测一个概念(一类场景)。

五、F.I.R.S.T

Fast--快速:测试应快速运行;如果测试运行缓慢,你就不会想要频繁的运行它,如果你不频繁的运行测试,就不能尽早发现问题,最终,代码就会变坏。

Independent--独立:测试间相互独立,不能有所依赖;某个测试不应为下一个测试设定条件。你应该可以独立运行每个测试,及以任何顺序运行测试。

Repeatable--可重复:测试应在任何环境中可重复通过;

Self-Validating--自足验证:测试应由布尔输出进行验证,无论通过还是失败,你不应该查看日志来确认测试是否通过。

Timely--及时:测试应及时编写。单元测试应该恰好在使其通过的生产代码之前编写。如果在编写生产代码之后编写测试,你会发现生产代码难以测试。

参考
《代码整洁之道》

相关文章

  • 代码整洁之道【8】-- 单元测试

    本章介绍了编写单元测试时候的一些要点。 敏捷和TDD(测试驱动开发)运动鼓舞了很多程序员编写自动化单元测试,但是许...

  • 简洁代码--单元测试

    代码整洁之道笔记 [TOC] 单元测试 测试驱动开发 TDD三定律 在编写不能通过的单元测试前,不能编写生产代码。...

  • [代码整洁之道]-整洁代码

    前段时间,看了代码整洁之道,顺手做了些笔记,分享给大家,和大家一起探讨整洁代码之道。 1.1要有代码 代码是我们最...

  • C++代码整洁之道1:单元测试的重要性

    以下为《C++代码整洁之道》阅读笔记 注重单元测试 重要性就不多说了,防患于未然,构建大型系统尤其需要进行单元测试...

  • 代码整洁之道-<函数>

    代码整洁之道-<函数> 代码整洁之道 一书相关读书笔记,整洁的代码是自解释的,阅读代码应该如同阅读一篇优秀的文章,...

  • 代码整洁之道

    01、有意义的命名 在团队开发中,团队小伙伴编码风格各不相同,一个统一的规范就显得尤为重要,最近在做Code Re...

  • 代码整洁之道

    整洁代码 Leblanc : Later equals never.(勒布朗法则:稍后等于永不) 对代码的每次修改...

  • 代码整洁之道

    海到无边天作岸,山登绝顶我为峰。作为猿类的我们,对自己创造的代码有着一种天生的无比自信。这是好事~可是,对于我们的...

  • 代码整洁之道

    1.一次只做一件事的原则 除了最外边必要的空判断,少用return操作符。原则如下图所示:一次只做一件事情.png...

  • 代码整洁之道

    一.整洁代码 借用一条美国童子军简单军规:让营地笔记来时更干净 二.有意义的命名 2.7避免使用编码编码已经太多,...

网友评论

      本文标题:代码整洁之道【8】-- 单元测试

      本文链接:https://www.haomeiwen.com/subject/vlaenltx.html