При написание юнит-теста на сохранение/изменение модели, как избавится от FK в Django?
Использую pytest в юнит-тестах. Ситуация такая, что хочу протестировать например создание новой записи.
1. Пробую создать объект через pytest. Проблема в том, что нужно обязательно создавать сторонние объекты, что бы заполнить обязательное поле FK (а у них тоже обязательные FK и тд.). По этому тут такая сложность
2. Пробую создать объект через mock. Мокаю объект и подставляю своё значение, но проблема в том, что фактически объект не создаётся, а я тут лишь подтасовываю данные.
По этому я в поисках более лучшего решения.
P.s. или может можно как нибудь создавать объект по 1 способу, только все FK можно было бы не заполнять.
Алексей Семёнов,
Практично
В тестах не требуется удалять дублирование кода
У вас больше заняло времени создание и написание вопроса чем 10 строк код для создания 10 записей
sim3x, так, давайте не будем лезть в мою работу не зная чем я занимаюсь)
Как я найду ответ на свой вопрос, то я сэкономлю тысячи строк кода, но не как не 10 ...
sim3x, Почему, я вас не понимаю? Создание каждый раз тестовые данные это рутина и это можно автоматизировать. А как по мне если что то можно автоматизировать это нужно делать, тк время - это деньги.
0. Ваш подход не создает автоматизацию создания записей
1. Ваш подход создает сложный код, который требуется тестировать
2. Ваш подход приведет к появлению сложноуловимых ошибок
Те он не економит время, а создает сложности и тратит время
Вместо копипаста 5-10 строк, который вместе с написанием первичного кода, займет от силы 10 минут, вы создаете костыли
Почему, я вас не понимаю?
Потому что вы не готовы воспринять чужое мнение
Вам требуется обучение через собственный болезненный опыт
Удачи, в его получении