PyUnit tearDown и setUp против __init__ и __del__ - PullRequest
15 голосов
/ 26 февраля 2010

Есть ли разница между использованием tearDown и setUp по сравнению с __init__ и __del__ при использовании инфраструктуры тестирования pyUnit? Если да, то что именно и какой метод использования предпочтителен?

1 Ответ

24 голосов
/ 27 февраля 2010

setUp вызывается перед каждым тестом, а tearDown вызывается после каждого теста. __init__ вызывается один раз, когда создается экземпляр класса - но так как новый TestCase экземпляр создается для каждого отдельного метода испытаний , __init__ is также вызывается один раз за тест.

Как правило, вам не нужно определять __init__ или __del__ при написании единицы тесты, хотя вы можете использовать __init__ для определения константы, используемой многими тестами.


Этот код показывает порядок вызова методов:

import unittest
import sys

class TestTest(unittest.TestCase):

    def __init__(self, methodName='runTest'):
        # A new TestTest instance is created for each test method
        # Thus, __init__ is called once for each test method
        super(TestTest, self).__init__(methodName)
        print('__init__')

    def setUp(self):
        #
        # setUp is called once before each test
        #
        print('setUp')

    def tearDown(self):
        #
        # tearDown is called once after each test
        #
        print('tearDown')

    def test_A(self):
        print('test_A')

    def test_B(self):
        print('test_B')

    def test_C(self):
        print('test_C')



if __name__ == '__main__':
    sys.argv.insert(1, '--verbose')
    unittest.main(argv=sys.argv)

печать

__init__
__init__
__init__
test_A (__main__.TestTest) ... setUp
test_A
tearDown
ok
test_B (__main__.TestTest) ... setUp
test_B
tearDown
ok
test_C (__main__.TestTest) ... setUp
test_C
tearDown
ok

----------------------------------------------------------------------
Ran 3 tests in 0.000s

OK
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...