使用@classmethod在Django中创建对象进行测试

时间:2019-04-12 07:39:15

标签: python django

两者都在较高层次上起作用,但是,这是用于创建测试对象的首选方法,为什么?

说明:出于测试目的,即测试在model文件中创建的test_models.py

第一种方式:

使用@classmethods

class AuthorModelTest(TestCase):
    @classmethod
    def setUpTestData(cls):
        Author.objects.create(first_name="Big", last_name="Bob")

第二种方式:

或者传递self而不是引用class

class AuthorModelTest(TestCase):
    def setUpTestData(self):
        Author.objects.create(first_name="Big", last_name="Bob")

1 个答案:

答案 0 :(得分:1)

它在AudioModel.find({ _id: { $in: playlist}}) 中定义为类方法,因此您应该在代码中执行相同的操作。也许这两个版本现在都可以使用,但是在Django的将来版本中,它可能会破坏您的代码与Django的兼容性。您可以检查documentation

  

类方法TestCase.setUpTestData():   上述的类级原子块允许创建   类级别的初始数据,一次用于整个TestCase。

只需遵循docs中的示例:

TestCase