Django 工厂男孩定制提供商

问题描述 投票:0回答:1

我想创建我自己的客户 Faker 提供商。

我正在使用factory-boy,它已经包含了Faker,所以在我的测试工厂中我使用UserFactory

name = factory.Faker('name')

我的问题是,我可以以某种方式实现我自己的自定义提供程序吗?那么我可以使用

factory.Faker('my_provider')
吗?或者为此我必须交换所有factory.Faker() 实例并只使用Faker() 实例?

django pytest faker factory-boy
1个回答
0
投票

您可以继承

BaseProvider
类并定义您的自定义函数。 之后您可以将其添加到
Faker
库的
factory
类中。

import factory
from faker import providers

class HelloWorldProvider(providers.BaseProvider):
    """Use provider to generate `hello world`.""" 

    def hello_world(self) -> str:
        """Say hello to the world"""
        return "hello world"

factory.Faker.add_provider(HelloWorldProvider)
print(factory.Faker('hello_world'))

Faker BaseProvider 参考

© www.soinside.com 2019 - 2024. All rights reserved.