SuperAPI AI 工具集

test-implement-factory-fixtures

测试与质量

查看项目

更新于 10-15 20:34

技能介绍

用途:该技能讲解并实现 pytest 的工厂夹具模式。工厂夹具是返回可调用函数的 pytest fixture,让测试在运行时传入参数动态构造对象,从而在保持灵活性的同时消除测试重复。

主要能力:覆盖识别使用场景(需要多种测试变体、参数化不足、边界情况需定制、真实对象搭配 mock 依赖);工厂函数设计(外层 fixture、内层函数、合理默认值、文档与类型提示);四类常见模式:Mock 服务工厂(成功/失败模式、不同返回类型)、设置工厂(多属性配置对象,用 kwargs 覆盖)、真实实例工厂(真实业务逻辑注入 mock 依赖)、结果/数据工厂(ServiceResult、查询结果、响应对象);夹具组织与命名约定;以及工厂与 pytest.mark.parametrize 的取舍指导。

使用方式:定义外层 @pytest.fixture 返回内层 create_xxx 函数,内层函数带默认参数并返回构造好的对象;测试函数接收该夹具后调用并传入所需参数。示例:@pytest.fixture def mock_service_factory(): def create_service(dimensions=384, success=True): ...; return create_service,测试中 service = mock_service_factory(dimensions=1536)。

适用场景:需要同一 mock 的多种配置、成功与失败分支、不同数据形状,或需要真实实例配合受控依赖的单元测试。

限制与常见陷阱:避免过度参数化(改用 kwargs)、必须提供默认值、避免有状态工厂导致测试间状态泄漏、应使用类型提示。资料未提供具体安装命令、收费信息或平台支持范围。