Фікстури в 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...