为什么在 运行 Django TestCase 时没有创建对象
Why object is not being created while running Django TestCase
我使用 TestCase class 创建了一个简单的模型测试用例。我使用 setUp 函数创建了一个对象,并在另一个函数中使用 assertEqual 测试了对象的计数。
测试运行成功,但是当我查看Django admin时,没有我刚刚创建的对象,也没有名为django_test的table。
我的测试用例:
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 是一个内置函数,还是我们可以在其中创建对象时使用任何函数名称??
测试会创建与您的 'real' 数据库不同的单独的空白测试数据库。这意味着您的 Django 管理员将不会使用相同的测试数据库。
您可以在这里阅读更多内容:
https://docs.djangoproject.com/en/3.2/topics/testing/overview/#the-test-database
关于 setUp
,它是 TestCase
class 的一部分,并且在每次测试之前调用。它本身什么都不做,你可以创建自定义函数来准备你的模型并在 setUp
中调用它们
您可以在这里阅读更多内容:https://docs.python.org/3/library/unittest.html#unittest.TestCase.setUp
我使用 TestCase class 创建了一个简单的模型测试用例。我使用 setUp 函数创建了一个对象,并在另一个函数中使用 assertEqual 测试了对象的计数。
测试运行成功,但是当我查看Django admin时,没有我刚刚创建的对象,也没有名为django_test的table。
我的测试用例:
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 是一个内置函数,还是我们可以在其中创建对象时使用任何函数名称??
测试会创建与您的 'real' 数据库不同的单独的空白测试数据库。这意味着您的 Django 管理员将不会使用相同的测试数据库。
您可以在这里阅读更多内容: https://docs.djangoproject.com/en/3.2/topics/testing/overview/#the-test-database
关于 setUp
,它是 TestCase
class 的一部分,并且在每次测试之前调用。它本身什么都不做,你可以创建自定义函数来准备你的模型并在 setUp
您可以在这里阅读更多内容:https://docs.python.org/3/library/unittest.html#unittest.TestCase.setUp