当您在班级中有多个测试方法时,差异就会显现出来. setUpClass和tearDownClass为整个类运行一次; setUp和tearDown在每个测试方法之前和之后运行.
例如:
class Example(unittest.TestCase):
@classmethod
def setUpClass(cls):
print("setUpClass")
def setUp(self):
print("setUp")
def test1(self):
print("test1")
def test2(self):
print("test2")
def tearDown(self):
print("tearDown")
@classmethod
def tearDownClass(cls):
print("tearDownClass")
运行此测试时,它会打印:
setUpClass
setUp
test1
tearDown
.setUp
test2
tearDown
.tearDownClass
(当测试通过时,点(.)是unittest的默认输出.)观察setUp和tearDown出现在test1和test2之前和之后,而setUpClass和tearDownClass只出现一次,在整个测试用例的开头和结尾.