创建工厂对象时如何设置子工厂的值



是否可以在不创建两个工厂对象的情况下设置子工厂的值?

例如,我有两个工厂;

class UserFactory(factory.DjangoModelFactory):
    FACTORY_FOR = 'mysite.user'
    name = "Mark"

class MyFactory(factory.DjangoModelFactory):
    FACTORY_FOR = 'mysite.myfactory'
    user = factory.SubFactory(UserFactory)

我想创建MyFactory(),同时设置user.name的值。

您是必须先创建user = UserFactory.create(name="John")还是可以在从参数到MyFactory()的单行中完成所有操作?

目前在测试中,我有以下内容;

def setUp(self):
    user = factories.UserFactory(name="John")
    myfactory = factories.MyFactory(user=user)

根据文档,您可以直接在外部工厂定义中定义SubFactory字段:

factories.MyFactory(user__name="John")

希望有帮助。

最新更新