当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Django TestCase.setUpTestData用法及代码示例


本文介绍 django.test.TestCase.setUpTestData 的用法。

声明

classmethod TestCase.setUpTestData()

上述 class-level atomic 块允许在类级别创建初始数据,一次用于整个 TestCase 。与使用 setUp() 相比,此技术允许更快的测试。

例如:

from django.test import TestCase

class MyTests(TestCase):
    @classmethod
    def setUpTestData(cls):
        # Set up data for the whole TestCase
        cls.foo = Foo.objects.create(bar="Test")
        ...

    def test1(self):
        # Some test using self.foo
        ...

    def test2(self):
        # Some other test using self.foo
        ...

请注意,如果测试在不支持事务的数据库上运行(例如,MySQL 和 MyISAM 引擎),则将在每次测试之前调用 setUpTestData(),从而抵消速度优势。

在 Django 3.2 中更改:

分配给setUpTestData() 中的类属性的对象必须支持使用 copy.deepcopy() 创建深层副本,以便将它们与每个测试方法执行的更改隔离开来。在以前的 Django 版本中,这些对象被重用,并且对它们所做的更改在测试方法之间保持不变。

相关用法


注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.test.TestCase.setUpTestData。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。