单元测试不只是为了覆盖率

单元测试如果只为了覆盖率,很容易写成调用方法、断言不报错。这样的测试看起来存在,真正重构时却给不了多少信心。

测业务规则

我更关注业务规则是否被测试固定下来。比如状态是否允许流转、金额是否正确计算、权限是否能阻止非法操作、异常输入是否被拒绝。

这些规则一旦有测试,后面改代码时就不容易悄悄改变业务含义。

测边界条件

边界条件比普通路径更容易出错。空列表、缺少字段、重复提交、状态不匹配、外部依赖失败,都值得写成测试。

边界测试的价值在于提醒自己:代码不是只面对理想输入,它要面对真实系统里各种不完整的情况。

测试也要可读

测试代码应该像一份小型说明书。读测试时能看出给定什么条件、执行什么动作、期望什么结果。如果测试本身很难读,后续维护者就不敢改。

我会避免在测试里塞太多无关准备数据。测试越聚焦,失败时越容易定位。

复盘

单元测试的核心价值是保护业务规则和重构信心。覆盖率可以作为参考,但不能代替测试质量。真正有用的测试,应该能在代码变坏时及时提醒你。

参考