【发布时间】:2020-06-14 00:30:19
【问题描述】:
我正在为 Django 应用程序编写测试。
目前,为了测试级联删除,我创建实例,删除父级并断言子级也被删除。
有没有更好的方法来做到这一点,例如使用_meta.get_field检索传递给模型的ForeignKey的参数?
【问题讨论】:
-
可以用
_meta.get_fields()获取字段列表,用instanceof(field, ForeignKey)过滤,查看field.on_delete。但我觉得你测试 Django 功能有点奇怪。这个想法是您测试您的业务逻辑。不是 Django 的,因为 Django 的开发人员需要确保它正常工作。 -
@WillemVanOnsem 谢谢。我正在对此进行测试,以防有人意外更改代码中的
CASCADE,他们会在运行测试时收到警报。我是测试新手,是不是太过分了? -
不是本身。当然,你当然应该看看你会从中得到什么,可能的麻烦是什么,以及你付出了多少努力。
标签: django unit-testing django-models django-testing django-tests