【发布时间】:2020-10-28 14:16:11
【问题描述】:
是的,这是我最不想问的地方,因为这个问题非常模糊,但我不知所措。
基本上,我正在尝试学习如何编码,目前我正在使用 Django 来帮助我掌握后端的知识。我不断被提醒单元测试的重要性,所以我想将它们包含在我正在从事的虚拟项目中,这样我就可以在我的编程之旅的早期开始理解它们......只是......它们看起来很容易表面上看,但对于初学者来说显然比我想象的要复杂。
我不完全确定我在哪里/如果我在这里出错了,所以请随意戳我并取笑,但请尝试为我指出正确的方向,或者指向一些适合初学者的资源(搜索互联网并有信息量不大)。
我的项目是一个与警务相关的虚拟 GUI(希望将来在我的投资组合中使用它)
这是我在测试方面需要帮助的模型类。还有其他的,但一旦我知道更多,我想自己做:
class Warrant(models.Model):
"""
"""
name = models.CharField(max_length=50)
WARRANT_TYPE_CHOICES = (
('ARREST', 'Arrest'),
('SEARCH', 'Search'),
)
warrant_type = models.CharField(max_length=10, choices=WARRANT_TYPE_CHOICES, default='ARREST')
start_date = models.DateTimeField(auto_now=True, null=True)
expiry_date = models.DateTimeField(auto_now_add=True, null=True)
renewal_date = models.DateTimeField(auto_now_add=True, null=True)
如您所见,相当简单的模型。
以下是我目前漫无目的地摆弄的测试:
def test_model_creation(self):
object = Warrant.objects.create()
self.assertIsNotNone(object)
def test_warrant_str(self):
warrant = Warrant.objects.create(
name="Warrant Name",
)
self.assertEqual(str(warrant), "Warrant Name")
def test_datetime_model(self):
start_date = Warrant.objects.create(start_date=datetime.now())
expiry_date = Warrant.objects.create(expiry_date=datetime.now())
renewal_date = Warrant.objects.create(renewal_date=datetime.now())
对我来说,这读起来很好,并且所有测试都返回 OK。但是,我不确定这是否是最佳做法,或者是否确实做了我认为应该做的事情。
另外,我也不确定如何测试warrant_type / WARRANT_TYPE_CHOICES 字段。
我知道这通常不是应该在这里问的问题类型,但我基本上只是随机输入我从教程中挑选的内容,甚至不知道它是否正确。
谢谢
【问题讨论】:
标签: django unit-testing django-models django-unittest