Я только изучаю подходы к тестированию в Django с использованием встроенных инструментов тестирования, в частности django.test.TestCase
.Мне интересно, лучше ли использовать методы утверждений на начальном этапе setUp
нового тестового класса?
Например, у меня есть следующие модели:
class TestProduct(BaseModel):
name = models.CharField(...)
class TestPrimaryImage(BaseModel):
url = models.TextField(...)
product = models.ForeignKey('TestProduct', ...)
Это продукт, который будет иметь основное изображение, заданное отношением ForeignKey
с записью класса TestPrimaryImage
.
Следуя приведенным ниже примерам: https://docs.djangoproject.com/en/2.1/topics/testing/overview/ Я создаю класс тестирования как таковой:
class NewProductTestCase(TestCase):
def setUp(self):
models.TestProduct.objects.create(
name='TestProductName'
)
def TestMainImage(self):
models.TestPrimaryImage.objects.create(
url="https://example.com/test-image-url.jpg",
product=?
)
Часть, в которой я не уверен, посвящена методу TestMainImage
, для которого требуется класс TestProduct
для ссылки.Уместно ли делать следующее во время setUp
:
def setUp(self):
self.test_product = models.TestProduct.objects.create(
name='TestProductName'
)
self.assertIsInstance(self.test_product, models.TestProduct)
Присвоение вновь созданного объекта переменной класса и утверждение его создания?Утверждение подразумевает, что, если новый продукт не будет успешно создан, ни один из других методов тестирования не сможет работать вообще.Например, TestMainImage
не будет иметь продукта для создания ссылки во время создания.
Этот кажется подходящим для меня подходом, но я новичок в Django и не путаюсьдля ветерана тестирования в целом.