Подтвердить что ты не робот

Разница между setUpClass и setUp в Python unittest

Разница между setUpClass и setUp в python Unittest framework, почему бы не настроить часть в setUp вместо setUpClass?

Я хочу понять, какая часть настроек выполняется в функциях setUp и setUpClass, а также с tearDown и tearDownClass.

4b9b3361

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