SuperAPI AI 工具集

pytest-test-data-factories

数据与分析

查看项目

更新于 10-16 05:05

技能介绍

用途:该技能提供在 pytest 中创建可复用测试数据的模式,避免在每个测试里重复构造相同字段的领域对象,通过合理默认值加按需覆盖来减少重复、提升可维护性。

主要能力:1) 工厂函数:在 conftest.py 中用 @pytest.fixture 返回内部 _create 函数,为 Order、LineItem 等对象提供默认值并支持字段覆盖;2) 构建器模式:用 OrderBuilder 等链式 API(with_customer_name、add_line_item、build)构造复杂对象;3) fixture 工厂:把工厂函数再包成 fixture,便于一次创建多个不同对象;4) 参数化测试:用 @pytest.mark.parametrize 配合工厂生成的数据表;5) Mock 响应模板:以 fixture 返回 Shopify 订单响应、Kafka 消息、ClickHouse 查询结果等字典或列表;6) Faker 真实数据:用 faker 生成 uuid、姓名、时间、价格等;7) 工厂继承:BaseOrderFactory 派生出 VIP、折扣等变体;8) 领域专用构建器:如 ProductRankingFactory 提供 create_default 与 create_list。

使用方式:在 tests/unit/conftest.py 中定义工厂 fixture,测试函数以参数注入后调用;覆盖字段时传入关键字参数。示例:order = create_test_order(customer_name="Jane Doe")。

适用场景:单元测试中需要大量结构相似但字段不同的领域对象、DTO、外部 API 响应或消息体时。

限制与要求:需要 Python 3.11+、pytest >= 7.0,Faker 为可选依赖(>= 15.0),并依赖应用自身的领域模型;资料未提供安装命令、收费与平台信息。