Python Django模型应该测试吗?
我应该测试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模型
是可测试的。例如,您可以为为模型编写的属性编写测试用例
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的观点,编写测试用例是自以为是的。您可以编写测试用例,也可以不编写测试用例,这完全取决于您的代码管理和设计水平