Django单元测试的Verbose_name

时间:2018-10-02 01:28:35

标签: django unit-testing django-models

以下是model.py中的类

class UnitUsers(models.Model):
    unit = models.ForeignKey(Unit, on_delete=models.CASCADE)
    user = models.ForeignKey(settings.AUTH_USER_MODEL,
                             on_delete=models.CASCADE)
    create = models.BooleanField(default=False)
    mark = models.BooleanField(default=False)
    submit = models.BooleanField(default=True)

    def __str__(self):
        return str(self.unit) + " - " + str(self.user)

    class Meta:
        verbose_name = _('Unit User')
        verbose_name_plural = _('Unit Users')

试图如下编写verbose_name测试用例

class UnitUsersTest(TestCase):

    @classmethod
    def setUpTestData(cls):
        unit = Unit.objects.create(name='Python', 
                                   start='2018-10-25 14:30:59', 
                                   end='2017-10-25 14:30:59',
                                   description='111', deleted='False')
        user = get_user_model().objects.create_superuser(username='admin', 
                                                  email='admin@decent.mark',
                                                  password='password')
        UnitUsers.objects.create(unit=unit, user=user, create='False', 
                                 mark='False', submit='True')


    def test_verbose_name(self):
        unit_user = UnitUsers.objects.get(id=1)
        field_label = unit_user._meta.get_field('user').verbose_name
        self.assertEquals(field_label, 'Unit User')

获取错误

失败:test_verbose_name(decentmark.tests.test_model.UnitUsersTest)

回溯(最近通话最近):   文件“ C:\ Users \ Prabhanjan \ Documents \ GitHub \ decentmark \ decentmark \ tests \ test_model.py”,第54行,位于test_verbose_name中     self.assertEquals(field_label,'单位用户') AssertionError:'用户'!='单位用户' -用户 +单位用户


在0.505秒内进行了11次测试

失败(失败= 1)

1 个答案:

答案 0 :(得分:0)

尝试将元类更改为

class Meta:
    verbose_name = "Unit User"
    verbose_name_plural = "Unit Users"

然后您的测试应该是什么样子

def test_verbose_name_plural(self):
    #unituser is the Class UnitUsers(model.Models)
    unitusers = UnitUsers.objects.get(id=1)
    verbose_name_plural = unitusers._meta.verbose_name_plural
    self.assertEquals(verbose_name_plural, "Unit Users"