Python для продвинутых: ООП, типизация и тестированиеОткрытые материалыFixtures в pytest: подготовка данных и scope

Fixtures в pytest: подготовка данных и scope

Уроки курсаFixtures в pytest: подготовка данных и scope

Fixture в pytest создаёт данные или ресурс, необходимые тесту. Тест объявляет зависимость обычным параметром, а pytest находит одноимённую fixture и передаёт результат.

import pytest

@pytest.fixture
def user_payload():
    return {"name": "Ada", "active": True}

def test_active_user(user_payload):
    assert user_payload["active"] is True

Fixture удобнее ручного setup в каждом тесте: у неё есть явное имя, граф зависимостей и контролируемый жизненный цикл. Но fixture должна готовить состояние, а не прятать само проверяемое действие и assertion.