断言(Assertion)
缩写:无
简述
在开发与测试中声明「此处必须为真」的检查;失败通常表示程序员错误而非用户输入问题。断言守护不变式;生产环境是否启用需权衡,不可用断言替代对外输入校验。
使用场景
不变式、测试、算法前置条件。
实践与应用
• 断言内部不变量
• 外部输入用校验与错误
• CI 全开断言
注意事项
• 断言有副作用
• 生产关闭断言后依赖其逻辑
对比与易混
| 断言 | 校验 | |
|---|---|---|
| 对象 | 程序员假设/不变量 | 外部输入 |
| 失败含义 | 实现 bug | 请求不合法 |
关联术语
• 不变式:断言常守护的性质
• 测试:断言在测试中的用法
• 校验:针对外部输入(断言针对程序员假设)
• 前置条件:调用前必须成立的条件