2014-02-11 6 views
0

В TestCase в setUp() Я хочу быть уверенным, что данные базы данных находятся в известном состоянии.call tearDown() в setUp()?

Поскольку я не знаю, оставил ли другой тест некоторые данные, я начал удалять старые вещи.

Теперь я обнаружил, что могу использовать меньше кода, если я позвоню tearDown() в первой строке setUp().

Это общий шаблон? Или есть лучшее решение?

Update

Я знаю, как tearDown() вызывается (всегда после теста).

+0

Почему не Teardown в сам тест? –

+0

для теста в тестах: setUp -> test -> tearDown. Вам не нужно вызывать teardown в настройке. Teardown всегда называется. это в окончательном утверждении. – User

ответ

1

В соответствии с комментарием к вашему сообщению, tearDown всегда будет запущен после пробного запуска, независимо от того, успешна ли работа или нет. Если вы обеспокоены тем, что база данных может быть получение данных добавлены к нему где-то между тестовых прогонов, то вы могли бы экстраполировать свой дб чистый код и назвать его в начале установки, а также:

class Test(unittest.testcase): 
    def cleanDB(self): 
     """db cleaning code goes here""" 
    def setUp(self): 
     self.cleanDB() 
     # Rest of setup code 
    def tearDown(self): 
     # tearDown code 
     self.cleanDB() 
Смежные вопросы