SuperAPI AI 工具集

pytest-mocking-strategy

测试与质量

查看项目

更新于 10-16 05:05

技能介绍

用途:为 pytest 单元测试提供一套 mock 决策框架,解决“该 mock 什么、如何安全地 mock、何时改用真实对象”的问题。适用于需要 mock 外部服务、编写 AsyncMock 模式或判断 mock 边界的场景;不适用于领域对象测试、pytest 配置或测试数据工厂。

主要能力:给出黄金法则——mock 外部边界,隔离测试单元;强调始终使用 autospec=True 或 create_autospec() 以约束接口、防止拼写错误;对异步方法使用 AsyncMock,并支持异步生成器;提供 mock 决策矩阵,明确外部 HTTP 服务、消息队列、数据库边界应 mock,而领域实体、值对象、用例编排、DTO、第三方库函数不应 mock;支持用 side_effect 模拟错误与重试;提供可复用的 mock 工厂与构建器模式;并说明如何用 assert_awaited_once、assert_called_once_with、call_count 验证交互。

使用方式:在 conftest.py 中定义 fixture 复用 mock;用 create_autospec(SomeGateway, instance=True) 创建 mock;异步场景用 AsyncMock 并设置 return_value 或 side_effect;复杂 mock 可用构建器类链式配置。

限制与要求:需 Python 3.11+、pytest >= 7.0、unittest.mock;可选 pytest-mock 与 pytest-asyncio。资料未提供具体收费、平台或效果信息。