Pytest 中的 Fixture 详解
1. 什么是 Fixture
1.1 基本概念
Fixture(夹具) 是 pytest 中一个非常重要的概念,它提供了一种机制来为测试用例提供前置准备和后置清理的功能。你可以把 fixture 理解为测试用例的”准备工作”和”收尾工作”。
1.2 形象比喻
想象一下,你要做一道菜:
没有 Fixture 的情况:
- 每次做菜前,你都要自己去买菜、洗菜、切菜
- 每次做完菜,你都要自己洗碗、收拾厨房
- 如果要做 10 道菜,这些准备工作要重复 10 次
有 Fixture 的情况:
- 你有一个”助手”(fixture),它会自动帮你:
- 在开始做菜前准备好所有食材(前置准备)
- 在完成做菜后自动清理厨房(后置清理)
- 你只需要专注于”做菜”本身(测试逻辑)
- 无论做多少道菜,准备工作都只需要定义一次