Python Django模型应该测试吗?

Python Django模型应该测试吗?,python,django,unit-testing,django-models,django-tests,Python,Django,Unit Testing,Django Models,Django Tests,我应该测试Django模型吗?到目前为止,我只为视图编写测试。还有什么可以和应该测试的?Django模型是可测试的。例如,您可以为为模型编写的属性编写测试用例 class Candidate(models.Model): first_name = StringField() last_name = StringField() @property def name(self): return self.first_name + ' ' + self

我应该测试Django模型吗?到目前为止,我只为视图编写测试。还有什么可以和应该测试的?

Django模型
是可测试的。例如,您可以为为模型编写的属性编写测试用例

class Candidate(models.Model):
    first_name = StringField()
    last_name = StringField()

    @property
    def name(self):
        return self.first_name + ' ' + self.last_name
现在您可以像这样为这个模型编写测试用例了。首先创建一个模型实例

class TestCandidateModel(SimpleTestCase):

    def setUp(self):
        self.candidate = Candidate.objects.create(first_name = 'ABC', second_name = 'XYZ')

    def test_returns_candidate_name(self):
        self.assertEqual(self.candidate.name, 'ABC XYZ')

应该测试什么?如果您想要一个简短的答案,“所有内容,不包括外部库”。您的测试需要尽可能细化。如果有一些方法是在模型上定义的,那么您应该在模型中测试它,而不是在视图中间接测试它,并确保在视图中调用该方法。因此,对于一个典型的django应用程序,您应该测试模型、管理器、表单、视图、序列化程序、处理程序,甚至是中间件(正如我所说的一切)

对您的问题的回答将是自以为是的。我的观点是,你应该有“足够”的测试来满足你的需求,尽管我同意@Sayse的观点,编写测试用例是自以为是的。您可以编写测试用例,也可以不编写测试用例,这完全取决于您的代码管理和设计水平