django测试用例中多次调用的setUp函数
我第一次使用django单元测试。下面是我的代码的缩小版本 我的假设是每个TestCase类调用一次setUp函数。但是,当我运行python manage.py test命令时,每个测试函数都会调用一次setUp函数 我是做错了什么,还是我的假设有错django测试用例中多次调用的setUp函数,django,django-testing,Django,Django Testing,我第一次使用django单元测试。下面是我的代码的缩小版本 我的假设是每个TestCase类调用一次setUp函数。但是,当我运行python manage.py test命令时,每个测试函数都会调用一次setUp函数 我是做错了什么,还是我的假设有错 class SampleTest(TestCase): """ This class assumes an archiver setup with add available at localhos
class SampleTest(TestCase):
"""
This class assumes an archiver setup with
add available at localhost:9101
query available at localhost:9105
"""
def __init__(self, *args, **kwargs):
self.init_var = False
super(SampleTest, self).__init__(*args, **kwargs)
def setUp(self):
""""""
print "setup called"
self.init_var = True
def test_1(self):
print "Test 1", self.init_var
def test_2(self):
print "Test 2", self.init_var
是的,你的假设是错误的。测试用例中的每个测试都应该是独立的;因此,
setUp
(和tearDown
)会为它们中的每一个调用一次
如果您确实需要在整个课程中只完成一次,请使用
setUpClass
;但是请注意,您不应该在那里进行设置数据之类的操作。这是因为每次调用测试用例时都会调用setUp
。如果只想调用一次,则必须将setUpClass
与@classmethod
装饰器一起使用,如下所示:
class SampleTest(TestCase):
@classmethod
def setUpClass(self):
# your code
我应该如何处理必须测试代码的多个逻辑点的用例,这些逻辑点对数据库进行了一些添加/删除。我不仅在设置功能中设置数据。我必须测试的逻辑会对数据库进行更改,我必须测试是否在数据库中创建了各种预期对象。对不起,我不理解你的问题。这是如何阻止你在每次测试中都这么做的?