🧠 图解记忆:Fixture 默认取最小作用域,只有昂贵且安全只读时才扩大共享;点击图片可查看原图。
**生命周期:** setup(准备)→ 执行 → teardown(清理)。- pytest 用
yield实现"执行前准备 + 执行后清理"(yield 前是 setup,yield 后是 teardown); - Go 里对应
t.Cleanup/TestMain,或setup()/teardown()成对函数。
作用域(pytest): function(默认,每个用例独立)、class、module、session(全进程共享一次)。
选择逻辑: 共享成本高的(连库、起服务)往上提,有状态的往下沉。session 级共享要小心状态污染,function 级最安全但最慢。
加分项: 说出"fixture 依赖注入"——fixture 可以依赖另一个 fixture,pytest 自动解析依赖图。
常见追问: session 级共享的数据库连接如何防止状态污染?(每个用例独立事务/独立 schema,或用 savepoint 回滚)
