首页/开发/软件测试速查/测试数据工厂
自动化测试66 条

测试数据工厂

测试数据工厂(Object Mother/Builder)把「构造一份合法数据」的代码集中管理,用例只声明差异字段;数据需求变化时改一处而不是几十个用例。

软件测试速查开发更新于 2026-10-12

工厂示例

工厂示例
def user(**overrides):
    data = {
        "name": "alice",
        "role": "member",
        "active": True,
    }
    data.update(overrides)
    return data


def test_inactive():
    assert is_visible(user(active=False)) is False
工厂默认值要满足业务约束;用例只覆盖关心的差异字段,可读性更好。

易错点

  • 工厂默认值导致数据重复(邮箱全一样),批量场景互相冲突
  • 工厂隐藏跨字段约束(角色与权限联动),生成的「合法」数据实际违反规则

数据来源与参考

  • Martin Fowler《Object Mother》(martinfowler.com)
  • pytest 官方文档(fixture 与数据准备)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌