【问题标题】:Django Unit test for returning absolute url in models用于在模型中返回绝对 url 的 Django 单元测试
【发布时间】:2018-10-01 12:34:14
【问题描述】:

下面是models.py

class Unit(models.Model):
    name = models.CharField(max_length=200)
    start = models.DateTimeField()
    end = models.DateTimeField()
    description = models.TextField()
    deleted = models.BooleanField(default=False)

    def clean(self):
        if self.end and self.start and self.end <= self.start:
            raise ValidationError({
                'end': _('End date should be after start date')
            })

    def get_absolute_url(self):
        return reverse('decentmark:unit_view', kwargs={'unit_id': self.pk})

我为日期验证等编写了一些测试。在为 get_aubsolute_url 编写测试时需要一些帮助

【问题讨论】:

    标签: django unit-testing django-models


    【解决方案1】:

    您将需要创建一个新对象并尝试访问它,如果顺利,它将返回响应代码200,否则将返回404

    class UnitTest(TestCase):
        def create_unit(self): # create_an_object_to_test_later
            name = 'just_test'
            start = '01-01-2018'
            end = '01-01-2019'
            description = 'demo_text'
            return Unit.objects.create(name=name, start =start , end =end,description =description)
    
        def test_url(self):
            w = self.create_unit()
            response = self.client.post(reverse('unit_view', args=[w.pk,])) #set unit_view to the url name in the urls.py
            self.assertEqual(response.status_code, 200)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      • 2017-01-30
      • 1970-01-01
      • 1970-01-01
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多