Ответ 1
Разница проявляется, когда у вас более одного метода тестирования в вашем классе. 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
появляются только один раз, в начале и в конце всего тестового примера.