用途:为 Python 应用编写与组织测试,覆盖 TDD 方法、pytest 基础、测试基础设施搭建、覆盖率检查与测试评审等场景。
主要能力:介绍 TDD 的 red、green、refactor 三步循环,建议目标覆盖率 80% 以上、关键路径 100%,用 pytest --cov=mypackage --cov-report=term-missing --cov-report=html 测量覆盖率。讲解基础断言写法,包括相等、真假、成员、比较、类型判断,以及用 pytest.raises 和 match 测试异常与异常属性。
fixture 部分覆盖基本用法、setup/teardown 的 yield 写法、function/module/session 三种作用域、参数化 fixture、多 fixture 组合、autouse fixture,以及用 conftest.py 共享 fixture。参数化部分讲解 pytest.mark.parametrize 传参、多参数、ids 命名和参数化 fixture 对比多种数据库后端。
标记与选择:支持自定义 marker(slow、integration、unit 等),用 pytest -m 筛选测试,并在 pytest.ini 中注册 markers。mock 部分讲解 unittest.mock 的 patch、return_value、side_effect 抛异常、mock_open 处理文件、autospec、模拟类实例与属性。异步测试基于 pytest-asyncio,支持 async 测试、async fixture 与 assert_awaited_once。
此外还涉及临时文件测试(tempfile、tmp_path、tmpdir)、测试目录结构(unit/integration/e2e)、测试类组织、API 与数据库常用测试模式,以及 pytest.ini 配置项。实践规范方面列出应做与不应做的要点,如每个测试只验证一个行为、使用描述性命名、mock 外部依赖、测试边界条件、保持测试独立且快速,避免测试实现细节、忽略失败、共享状态、在测试中捕获异常或使用 print。
限制:资料未提供安装命令、具体版本要求、支持的 Python 版本、性能数据或授权与收费信息,暂未提供。