Фикстуры в unittest

Введение в тестирование на Python

Alexander Levin

Data Scientist

Что такое фикстура

  • Фикстура
    • подготовленная среда для теста
    • отделяет подготовку от кода теста
  • Настройка фикстуры — подготовка ресурсов для тестов
  • Очистка фикстуры — освобождение выделенных ресурсов
  • Пример: подготовка еды для пикника и уборка по окончании
Введение в тестирование на Python

Фикстуры в библиотеке unittest

  • Фикстура в unittest — подготовка, необходимая для выполнения одного или нескольких тестов
  • .setUp() — метод, вызываемый перед тестом для подготовки фикстуры
  • .tearDown() — метод, вызываемый после теста для очистки среды
1 https://docs.python.org/3/library/unittest.html
Введение в тестирование на Python

Пример кода

import unittest

class TestLi(unittest.TestCase):
    # Fixture setup method
    def setUp(self):
        self.li = [i for i in range(100)]

    # Fixture teardown method
    def tearDown(self):
        self.li.clear()

    # Test method
    def test_your_list(self):
        self.assertIn(99, self.li)
        self.assertNotIn(100, self.li)
Введение в тестирование на Python

Заглавные U и D

  • Правильный синтаксис: setUp с заглавной U и tearDown с заглавной D.

    class TestLi(unittest.TestCase):
      # Fixture setup method
      def setUp(self):
          self.li = [i for i in range(100)]
    
      # Fixture teardown method
      def tearDown(self):
          self.li.clear()
    
Введение в тестирование на Python

Пример вывода

Команда: python3 -m unittest test_in_list.py

Вывод при запуске с .setUp() и .tearDown():

вывод при запуске с фикстурой

Введение в тестирование на Python

Методы с неверными именами

Вывод при запуске с .set_up():

вывод при запуске с фикстурой с неверным именем

Введение в тестирование на Python

Итоги

  • Фикстура в unittest — подготовка, необходимая для выполнения одного или нескольких тестов
  • Чтобы создать фикстуру:
    • реализуйте метод .setUp()
    • реализуйте метод .tearDown()
  • .setUp() — метод, вызываемый перед тестом для подготовки фикстуры.
  • .tearDown() — метод, вызываемый после теста для очистки среды.
Введение в тестирование на Python

Давайте потренируемся!

Введение в тестирование на Python

Preparing Video For Download...