我一直在测试需要创建临时对象的代码的方式看起来很杂乱。我希望有一种更清洁,更直观的方法。
在安装程序中,我运行一个函数setUpTestData,该函数负责创建临时对象,供我的测试稍后使用。由于ForeignKey的关系,我不得不在其中创建的嵌套对象变得有些混乱。
以下是我正在使用的示例:
class Test_query_alarm(TestCase):
@classmethod
def setUpTestData(cls):
Device.objects.create(
site=Site.objects.create(
group=Group.objects.create(
name='TestGroup'
),
name='TestSiteName',
address='TestAddress',
gps_coordinates='TestGpsCoordinates',
contact=Contact.objects.create(
first_name='TestFirstName',
last_name='TestLastName',
phone='TestPhoneNumber',
email='test@gmail.com'
)
),
ip_address='ip-here',
snmp_port_number='port-here',
http_port_number='port-here',
location='Houston',
snmp_version='SNMPV2',
type='Modem',
manufacturer='Commscope'
)
如您所见,我正在生成Device对象。但是它还需要在其旁边创建其他三个对象。有人可以在这里给我任何建议,无论是数据库设计,测试设计还是其他。
答案 0 :(得分:1)
我使用django-autofixture,您可以使用它来快速创建对象,它会根据字段类型用随机数据填充您的字段,或者可以指定您希望创建的对象在某个字段中具有的数据。 / p>
如果您要求这样做,它将也遵循关系。它具有很多功能。
感谢@HåkenLid提供此有用的链接:https://djangopackages.org/grids/g/fixtures/
测试愉快。