Тестирование в django: каковы различия между setUpClass, setUpTestData и setUp в классе TestCase?
каковы различия между setUpClass
, setUpTestData
и setUp
на TestCase
класса?
более конкретно, каковы варианты использования для каждого?
что я понял:
setUpClass
- этот метод запускается один раз, перед всеми тестами в тестовом классе
setUpTestData
- этот метод выполняется один раз, если БД поддерживает транзакции. В противном случае он запускается перед каждым тест.
настройка
- этот метод выполняется перед каждым тестом в тест класс.
из понимания, о котором я упоминал выше, кажется, что setUpTestData находится в области между setUpClass и setUp. Почему нам нужен метод уровня класса для setuUpTestData, в то время как тот же эффект может быть достигнут либо setUpClass
или setUp
или сочетание обоих?
1 ответов
EDIT: обновление / исправление после комментария Alasdair
setUpClass
-
setUpClass
используется для выполнения инициализации класса-широкий/конфигурации (например, создание подключения, загрузки завис). При использованииsetUpClass
например, чтобы открыть соединение с базой данных / сеанс, вы можете использоватьtearDownClass
закрыть их. -
setUpClass
вызывается один раз для TestCase перед запуском любого из тестов. АналогичноtearDownClass
вызывается после всех испытаний бежать.
Примечание в документации:
SimpleTestCase и его подклассы (например, TestCase,...) полагайтесь на setUpClass() и tearDownClass () для выполнения некоторой инициализации класса (например, переопределения параметров). Если вам нужно переопределить эти методы, не забудьте вызвать супер реализацию:
setUpTestData
-
setUpTestData
используется для создания исходных тестовых данных на TestCase. Этот метод вызывается Тесткейса.setUpClass() (src) -
setUpTestData
вызывается один раз для TestCase, как описано в документация. В случае, если базы данных не поддерживают транзакции,setUpTestData
будет вызываться перед каждым тестовым запуском (спасибо @Alasdair за исправление меня)
настройка
-
setUp
будет вызываться перед каждым тестовым запуском и использоваться для подготовки тестового набора данных для каждого тестового запуска.
используя setUpTestData
позволяет повысить производительность тестирования, имейте в виду, что изменение этих данных в тестах будет сохраняться между различными тестовыми прогонами. Если необходимо перезагрузить, это можно сделать из setUp
метод.
Если база данных, используемая для выполнения тестов, не поддерживает транзакции, повышение производительности отрицается (как setUpTestData
будет вызываться перед каждым тестовым запуском)