Skip to content
🔗 分享本题
查看我的学习进度 →

28 模块 Q2 教学图:如何设计一个可重复运行的 harness?(系统设计题)

🧠 图解记忆:锁输入、锁环境、控非确定性,才能得到可比较结果;点击图片可查看原图。

按这四条答基本满分:
  1. 确定性: 固定随机种子、固定时区、固定 locale,禁止依赖"当前时间"做断言(用注入的 Clock);
  2. 隔离性: 每个用例独立数据,跑完清理现场(teardown),不留脏数据;
  3. 顺序无关: 用例之间无共享可变状态,能并行就并行;
  4. 环境无关: 数据库用内存版或测试容器,网络用替身,环境变量在 fixture 里统一注入。

加分项: 说出"幂等性"(同一用例跑 N 次结果一致)和"可定位性"(失败时能一眼看出是哪个用例、哪条数据、哪个断言挂了)。

面试话术:

"我会把 harness 当产品设计:确定性靠固定种子和注入时钟,隔离性靠每用例独立数据 + teardown,顺序无关靠无共享可变状态,环境无关靠内存库和网络替身。再加幂等和可定位——失败日志要能直接定位到用例、数据和断言。"


📚 参考:pytest 官方文档(可重复测试与 fixture)