Как позволить DjangoModelFactory создать модель, не сохраняя ее в БД? - PullRequest
0 голосов
/ 04 ноября 2019

Я пишу юнит-тесты в проекте Django. У меня есть фабрика для создания объектов с использованием метода .create(). Поэтому в своих модульных тестах я использую это:

device = DeviceFactory.create()

Это всегда создает запись в БД. Можно ли как-нибудь заставить фабрику создать объект, не сохраняя его в БД?

Я просмотрел документацию, но не могу найти ее. Я что-то упустил?

1 Ответ

3 голосов
/ 04 ноября 2019

Quoth этот бит документации , используйте .build() вместо .create():

# Returns a User instance that's not saved
user = UserFactory.build()

# Returns a saved User instance.
# UserFactory must subclass an ORM base class, such as DjangoModelFactory.
user = UserFactory.create()

# Returns a stub object (just a bunch of attributes)
obj = UserFactory.stub()

# You can use the Factory class as a shortcut for the default build strategy:
# Same as UserFactory.create()
user = UserFactory()
...