Юнит-тест Джанго для моделей - PullRequest
0 голосов
/ 30 сентября 2018

Ниже приведен класс в 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 __str__(self):
        return self.name

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

Я написал тесты для проверки даты, длины строки и т. Д. Ниже приведены тесты для вышеуказанного класса.

from django.test import TestCase
from decentmark.models import *



class UnitModelTest(TestCase):

    @classmethod
    def setUpTestData(cls):
        Unit.objects.create(name='Python', start='2018-10-25 14:30:59', 
                            end='2017-10-25 14:30:59', description='111',
                            deleted='False')

    def test_name_label(self):
        unit = Unit.objects.get(id=1)  # type: Unit
        field_label = unit._meta.get_field('name').verbose_name
        self.assertEquals(field_label, 'name')

    def test_name_max_length(self):
        unit = Unit.objects.get(id=1)
        max_length = unit._meta.get_field('name').max_length
        self.assertEquals(max_length, 200)

    def test_str(self):
        unit = Unit.objects.get(id=1)
        expected_object_name = unit.name
        self.assertEquals(expected_object_name, str(unit))

    def test_date(self):
        unit = Unit.objects.get(id=1)
        with self.assertRaises(ValidationError):
            unit.full_clean()

Есть ли другие тесты, которые мне нужно написатьдля вышеуказанного класса в models.py.

1 Ответ

0 голосов
/ 30 сентября 2018

Вы можете использовать Coverage.py для проверки того, какие части кода выполняются, поэтому для проверки этих частей.

Документация Django о Coverage.py

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...