Python unittest框架中setUp()和setUpClass()有什么区别?为什么设置应该用一种方法处理另一种方法?
我想了解在setUp()和setUpClass()函数以及tearDown()和tearDownClass()中完成了哪些部分的设置.
当您在班级中有多个测试方法时,差异就会显现出来. 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只出现一次,在整个测试用例的开头和结尾.