- 每个用例自建数据并自清理
- 不依赖前序用例写入的记录
- 不共享同一账号与同一批记录
- 时间与时区显式控制
常见破坏源:共享 fixture 中的可变对象、全局缓存的登录态、对自增主键的假设。
隔离破坏源与对策
| 破坏源 | 典型表现 | 对策 |
|---|---|---|
| 共享可变对象 | 用例顺序不同结果不同 | 每个用例重建夹具 |
| 固定账号 | 并发执行互踢登录 | 按用例派生独立账号 |
| 自增主键假设 | 并行下键冲突 | 随机键或占位标识 |
| 真实时钟 | 跨日、跨时区失败 | 注入可控时钟 |
用例隔离指任意用例都能单独运行、以任意顺序运行并得到一致结果:不共享可变状态、不依赖执行顺序、不残留数据;这是并行与重试能够成立的前提。
| 破坏源 | 典型表现 | 对策 |
|---|---|---|
| 共享可变对象 | 用例顺序不同结果不同 | 每个用例重建夹具 |
| 固定账号 | 并发执行互踢登录 | 按用例派生独立账号 |
| 自增主键假设 | 并行下键冲突 | 随机键或占位标识 |
| 真实时钟 | 跨日、跨时区失败 | 注入可控时钟 |