好吧,我的测试文件遇到了有趣的问题。
我正在使用这个简单的代码来检查用户创建的UserFactory
UserFactory.create_batch(4)
for u in User.objects.all():
print(u.email)
UserFactory - 这工作正常
创建 4 个用户create_batch(4)
process
from django.contrib.auth import get_user_model
from factory import Faker
from factory.django import DjangoModelFactory
class UserFactory(DjangoModelFactory):
email = Faker("email")
password = Faker(
"password",
length=42,
special_chars=True,
digits=True,
upper_case=True,
lower_case=True,
)
class Meta:
model = get_user_model()
django_get_or_create = ["email"]
UserFactory - 这个不起作用
仅创建 1 个用户create_batch(4)
process
from django.contrib.auth import get_user_model
from faker import Faker
from factory.django import DjangoModelFactory
fake = Faker()
class UserFactory(DjangoModelFactory):
email = fake.email()
password = fake.password()
class Meta:
model = get_user_model()
django_get_or_create = ["email"]
唯一的区别是我生成用户电子邮件的方式。factory.Faker("email)
工作正常但是faker.email()
没有。
也许有人有同样的问题?
- 工厂男孩文档:https://factoryboy.readthedocs.io/en/stable/index.html
- faker 包文档:https://faker.readthedocs.io/en/master/index.html