《代码整洁之道》阅读笔记 9单元测试

562 阅读3分钟

FIRST规则(Fast、Independent、Repeatable、Self-Validating、Timely) 在这里插入图片描述

单元测试想必大家都很熟悉,即便没有真正的做过单元测试,但肯定也听过单元测试以及单元测试的重要性。==完善的而又规范的单元测试,不仅能够能够有助于自己写出简洁的代码,使代码变得可扩展、可维护、可复用,还能够极大的提到代码的健壮性==。

1.TDD三定律

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

  • 2.只可编写刚好无法通过的单元测试,不能编译也算不通过

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

测试与生产代码一起编写,测试只比生产代码早写几秒钟。这样写程序,测试将覆盖所有生产代码。测试代码量足以匹敌生产代码量,导致令人生畏的管理问题。

2.保持测试整洁

  • 1.脏测试等同于没测试,测试必须随生产代码的演进而修改,测试越脏,就越难修改

  • 2.测试代码和生产代码一样重要,它需要被思考、被设计和被照料,它该像生产代码一般保持整洁

  • 3.如果测试不能保持整洁,你就会失去它们,没有了测试,你就会失去保证生产代码可扩展的一切要素

3.整洁的测试

作者这里遵循了重要的事情说三遍的原则:可读性,可读性,可读性。如何做到可读,那就是要保证测试代码同其他代码一样,明确,简洁,足具表达力,这也是这本书一直强调的事情。

示例(反例代码): 在这里插入图片描述 在这里插入图片描述 正例 在这里插入图片描述 在这里插入图片描述

以上代码为:构造-操作-检验(BUILD-OPERATE-CHECK)模式,第一个环节构造测试数据,第二个环节操作测试数据,第三个部分检验操作是否得到期望的结果

4.每个测试一个断言

  • 1.JUnit中每个测试函数都应该有且只有一个断言语句

  • 2.最好的说法是单个测试中的断言数量应该最小化

  • 3.最佳规则是应该尽可能减少每个概念的断言数量 ,每个测试函数只测试一个概念

5.F.I.R.S.T

  • 1.快速(Fast)测试应该够快
  • 2.独立(Independent)测试应该相互独立
  • 3.可重复(Repeatable)测试应当可在任何环境中重复通过
  • 4.自足验证(Self-Validating)测试应该有布尔值输出,如果测试不能自足验证,对失败的判断就会变得依赖主观。
  • 5.及时(Timely)测试应及时编写,再次强调,测试只比生产代码早写几秒钟。

6.参考文献

《代码整洁之道》 www.jianshu.com/p/0479b3ad7… www.jianshu.com/p/c44eca6ad…

关注公众号“程序员面试之道”

回复“面试”获取面试一整套大礼包!!!

本公众号分享自己从程序员小白到经历春招秋招斩获10几个offer的面试笔试经验,其中包括【Java】、【操作系统】、【计算机网络】、【设计模式】、【数据结构与算法】、【大厂面经】、【数据库】期待你加入!!!

1.计算机网络----三次握手四次挥手

2.梦想成真-----项目自我介绍

3.你们要的设计模式来了

4.震惊!来看《这份程序员面试手册》!!!

5.一字一句教你面试“个人简介”

6.接近30场面试分享