读后感:《Unit Testing: Principles, Practices, and Patterns》

2 阅读1分钟

我之所以觉得需要专门去学习一下如何去写测试代码,是觉得现在 AI 普遍来说写代码的能力确实更强了,但是需要给 AI 设置很多的护栏才能更安全,而测试,就是最重要的一个护栏,浏览了这本书对于测试有了更全面的认知,测试主要分为三类,单元测试,集成测试和端到端测试(E2E),自己在使用 AI Coding 的时候也不自觉得发现自己使用了最佳实践,我一般会先写一个集成测试,再让 AI 去实现功能,然后验证集成测试是否通过,再补上单元测试,Review 单元测试,查看单元测试覆盖率,Review 功能代码,最后再进行 E2E 测试。

写测试有什么好处?单元测试的目的是实现软件项目的可持续增长,单元测试可以保证未来在功能演进的过程中原来的功能不被破坏,同时单元测试的本身也是一种文档,AI 时代来临后,测试也是必要的护栏

image.png

写测试有哪些原则?这本书本身有三百多页,国内大部分的公司都是不写测试的,或者只是为了通过代码门禁,能够有这个意识和行动已经超过 99% 的人了,我总结了几条原则:

  1. 测试需要覆盖:集成测试,单元测试,E2E 测试;
  2. 测试覆盖率需要 >= 70%;
  3. 使用 BDD 命名模式(每个测试需要有中文注释),测试的本身也是文档,BDD 可读性更好。