程序员如何做「自动化测试」:不是负担,是保障
很多程序员觉得测试是负担——"我已经写好代码了,为什么要花时间写测试?"
但测试不是负担,是保障。
一、为什么需要自动化测试
1. 快速验证
每次改动后跑测试,几分钟就知道有没有问题。
不用手动测试半天。
2. 防止回归
老功能被新代码改坏了?测试能发现。
3. 文档作用
测试代码是最好的文档——告诉你这个函数怎么用。
4. 信心
有测试覆盖,改代码的时候不怕——反正跑一遍就知道了。
二、测试金字塔
1. 单元测试(底层)
测试单个函数、单个类。
最多,占 70%。
2. 集成测试(中层)
测试多个单元配合工作。
占 20%。
3. 端到端测试(顶层)
测试整个系统。
最少,占 10%。
三、怎么做单元测试
1. 测试一个函数
一个测试函数测试一个场景。
2. Given-When-Then 格式
- Given:准备数据
- When:执行操作
- Then:验证结果
3. 断言要明确
assertEquals("期望的结果", actual)
四、常见错误
❌ 不写测试
"没时间写测试"——出问题的时候更没时间。
❌ 只测 happy path
边界情况、异常情况都要测。
❌ 测试不稳定
有时候过、有时候不过——测试本身不可靠。
❌ 测试覆盖过高
100% 覆盖不一定好,优先测核心逻辑。
五、工具
Java
- JUnit(单元测试)
- Mockito(模拟对象)
- AssertJ(断言)
JavaScript
- Jest
- Mocha
- Cypress(端到端)
六、一句话总结
自动化测试 = 单元测试(多)+ 集成测试(中)+ 端到端测试(少)。