【问题标题】:writing unit test for many to many model in django program在 django 程序中为多对多模型编写单元测试
【发布时间】:2019-04-23 11:21:39
【问题描述】:

在我的 django 项目中,我有两个类,如下所示:

class DataTag(models.Model):
title = models.CharField(max_length=120, unique=True)
relations = models.ManyToManyField('DataTag',
related_name='related_data_tags', blank=True)

另一个类是:

class Data(models.Model):
    tags = models.ManyToManyField('DataTag',related_name = 'data')
    def tag_name(self):
        if self.tags.all():
            return self.tags.all()[0].title
        return '' 

我的两个模型都可以工作,但现在我想为 main_tag_name 编写一个测试,并检查此函数是否返回真值。直到现在我编写以下内容:

from unittest import TestCase
class DataTest(TestCase):
    def test_tag_name(self):
        self.data = Data.objects.create()
        self.tag1 = DataTag.objects.create()

我是写作测试的新手。请帮我写这个测试。 提前致谢

【问题讨论】:

    标签: django unit-testing django-models model django-testing


    【解决方案1】:

    你可以做什么:

    创建一个数据对象: data_object = Data.objects.create()

    现在,为此创建一个标签: data_object.tags.create(name='Foo')

    您可以断言该关系存在:self.assertTrue(data_objects.tags.exists())

    现在您可以断言 tag_name 返回您期望的结果:self.assertEqual(data_object.tag_name, 'Foo')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-16
      • 1970-01-01
      • 2021-04-07
      • 2020-04-17
      • 1970-01-01
      • 2010-10-02
      • 2012-03-23
      相关资源
      最近更新 更多