Вступ до fixtures

Вступ до тестування в Python

Alexander Levin

Data Scientist

Що таке fixture

  • Fixture — заздалегідь підготовлене середовище для запуску тесту
  • Fixture Setup — підготовка середовища та ресурсів, потрібних одному чи кільком тестам

Уявімо підготовку до пікніка:

  1. Запросити друзів і приготувати їжу (це роблять fixtures)
  2. Розважатися!
  3. Прибрати
Вступ до тестування в Python

Навіщо потрібні fixtures

Fixtures допомагають:

  • Спрощувати підготовку тестів
  • Ізолювати підготовку середовища від самого тесту
  • Робити код fixture придатним до повторного використання
Вступ до тестування в Python

Приклад fixture: огляд

Припустімо, у нас є:

  • змінна Python типу list з назвою data
  • data = [0, 1, 1, 2, 3, 5, 8, 13, 21]

І ми хочемо перевірити, що:

  • Вона містить 9 елементів
  • Вона містить елементи 5 і 21
Вступ до тестування в Python

Приклад fixture: код

import pytest

# Fixture decorator
@pytest.fixture
# Fixture for data initialization
def data():
    return [0, 1, 1, 2, 3, 5, 8, 13, 21]

def test_list(data):
    assert len(data) == 9
    assert 5 in data
    assert 21 in data
Вступ до тестування в Python

Приклад fixture: результат

Результат прикладу: вивід прикладу з fixture

Вступ до тестування в Python

Як використовувати fixtures

Щоб використати fixture, виконайте таке:

  1. Підготуйте ПЗ і тести
  2. Знайдіть «підготовку середовища»
  3. Створіть fixture:
    • Оголосіть декоратор @pytest.fixture
    • Реалізуйте функцію fixture
  4. Використайте створену fixture:
    • Передайте назву fixture у тестову функцію
    • Запустіть тести!
Вступ до тестування в Python

Підсумок

Ми розглянули тестові fixtures:

  • Fixture — підготовлене середовище для виконання тестів
  • Використовуємо fixtures, щоб спростити підготовку та ізолювати її від тестових функцій
  • Простий приклад: підготовка Python-list
  • Визначають fixture у pytest, оголошуючи @pytest.fixture
    • далі йде функція fixture
  • Назви fixtures використовують у тестах як змінні
Вступ до тестування в Python

Давайте потренуємось!

Вступ до тестування в Python

Preparing Video For Download...