【问题标题】:Why object is not being created while running Django TestCase为什么在运行 Django TestCase 时没有创建对象
【发布时间】:2021-08-24 05:11:15
【问题描述】:

我使用 TestCase 类创建了一个简单的模型测试用例。我使用 setUp 函数创建了一个对象,并在另一个函数中使用 assertEqual 测试了对象的计数。

测试运行成功,但是当我检查 Django admin 时,没有我刚刚创建的对象,也没有名为 django_test 的表。

我的测试用例:

class TestContact(TestCase):

    def setUp(self):
        self.contact = Contact.objects.create(
            full_name = "John Van",
            email = "jon@gmail.com",
            phone = 9845666777,
            subject = "My query",
            message = "test message"
        )

    def test_contact_count(self):
        self.assertEqual(Contact.objects.count(),1)

另外,setUp 是一个内置函数还是我们可以在其中创建对象时使用任何函数名??

【问题讨论】:

标签: django unit-testing django-models django-rest-framework testcase


【解决方案1】:

测试会创建与您的“真实”数据库不同的单独空白测试数据库。这意味着您的 Django 管理员将不会使用相同的测试数据库。

您可以在此处阅读更多内容: https://docs.djangoproject.com/en/3.2/topics/testing/overview/#the-test-database

关于setUp,它是TestCase 类的一部分,在每次测试之前都会被调用。它本身什么也不做,您可以创建自定义函数来准备模型并在 setUp 中调用它们

您可以在这里阅读更多内容:https://docs.python.org/3/library/unittest.html#unittest.TestCase.setUp

【讨论】:

    猜你喜欢
    • 2011-10-21
    • 2020-04-03
    • 1970-01-01
    • 1970-01-01
    • 2020-10-14
    • 2015-05-13
    • 1970-01-01
    • 2023-02-07
    • 1970-01-01
    相关资源
    最近更新 更多