Django模型字段是否需测试?测试最佳实践及边界探讨
Django模型字段测试的最佳实践疑问
以下是定义的Author模型:
class Author(models.Model): first_name = models.CharField(max_length=100) last_name = models.CharField(max_length=100) date_of_birth = models.DateField(null=True, blank=True) date_of_death = models.DateField('Died', null=True, blank=True)
有观点指出:
无需显式测试first_name和last_name是否作为CharField正确存储在数据库中,因为这是Django定义的功能……但你应当检查字段标签(First name、Last name、Date of birth、Died)以及文本字段的分配长度(100字符),因为这些属于你的设计内容,未来可能被破坏或修改。
若遵循该建议,不会编写测试验证字段仅接受100字符(这属于测试Django的行为),而是编写测试验证max_length确实等于100,示例测试代码如下:
def test_max_length(self): self.assertEqual(models.Author._meta.get_field('first_name').max_length, 100)
我认为此类测试本质上只是验证自己的编写内容是否正确。当然,若错误的max_length破坏了其他代码,应在对应代码中测试。请问Django模型字段测试的最佳实践是什么?除上述引用外,我仅能找到“尽可能多测试”或“可能出错就该测试”这类通用表述。我尤其关注区分代码/行为测试与配置测试边界的资源或观点,也希望了解参数的用途数量是否会影响测试方法——例如,有人认为max_length仅用于定义最大长度,开发者不会无意修改它,仅会在需要时更改。
内容的提问来源于stack exchange,提问作者C4X
相关产品推荐
相关产品推荐

