UnitTest в Django.
Тестирование приложений Django. Часть 2.
Продолжаем серию постов про юнит-тесты в Django.
Выполнение предварительной настройки и очистка данных после завершения теста.
Иногда, при написании тестов, нам может потребоваться выполнить некоторые повторяющиеся задачи, такие как настройка некоторых переменных, которые потребуются для теста. Как только тест будет завершен, мы захотим очистить все изменения, которые мы внесли в тестовые переменные, чтобы любой новый тест начинался с нового экземпляра.
К счастью, библиотека unittest предоставляет нам полезный способ автоматизировать наши повторяющиеся действия по настройке среды перед запуском каждого теста и ее очистке после завершения теста. Этого можно достичь с помощью двух методов, которые мы можем реализовать в нашем TestCase.
Первый — это метод setUp(). Этот метод вызывается перед выполнением каждого тестового метода внутри класса TestCase.
Он реализует код, необходимый для настройки среды тестового случая перед выполнением теста. Этот метод может быть хорошим местом для настройки любого экземпляра локальной базы данных или тестовых переменных, которые могут потребоваться для нашего теста.
Важное замечание: Метод setUp() действителен только для тестов, записанных внутри класса TestCase
Рассмотрим пример работы метода setUp() который используется внутри класса TestCase.
В этом примере, мы пытаемся выполнить тестовые примеры тестов, метод setUp(), который мы здесь определили, будет вызываться каждый раз перед выполнением тестового метода. Другими словами, метод setUp() будет вызван до выполнения вызова test_method_a(), а затем он будет вызван еще раз перед вызовом вызова test_method_b()
Второй метод — это метод tearDown(). Этот метод вызывается после того, как тестовая функция завершает выполнение и очищает переменные и их значения после завершения выполнения тестового случая.
Этот метод выполняется независимо от того, имеет ли тестовый случай значение True или False. Пример использования метода tearDown():
Метод tearDown() будет вызываться каждый раз, когда тестовый метод завершает выполнение, то есть он будет вызван как только test_method_a() завершит выполнение, и потом опять после того, как test_ method_b() завершит работу.
Теперь мы знаем структуру написания тестов. Далее рассмотрим, как мы можем протестировать различные аспекты приложения Django с помощью предоставленного тестового фреймворка.
Источник: Web Development with Django
Перевод и адаптация: geek_ant