> Для чего нужны фикстуры в pytest (Python)

Уровень: senior · Роль: backend · Язык: Python · Категория: Технические вопросы

Компании: PositiveTechnologies, Сбер

Стек: Python

> Пример ответа

Фикстуры в pytest - это механизм для подготовки и очистки тестового окружения. Они позволяют вынести повторяющийся код (создание объектов, подключение к БД, загрузка конфигов) в отдельные функции, которые затем автоматически подставляются в тесты. Основные цели фикстур:

  1. Устранение дублирования: вместо копирования setup/teardown в каждый тест, фикстура определяется один раз.
  2. Управление зависимостями: фикстуры могут вызывать другие фикстуры, образуя цепочку (например, фикстура db_connection может зависеть от фикстуры config).
  3. Настройка области видимости: с помощью параметра scope можно контролировать, как часто создается фикстура - для каждого теста (function), для модуля (module), для сессии (session) и т.д.
  4. Автоматическая очистка: код после yield выполняется после завершения теста, что удобно для закрытия файлов, соединений или удаления временных данных.

Пример:

PYTHON
import pytest
@pytest.fixture
def user_data():
# setup: создаем тестовые данные
data = {"name": "Alice", "age": 30}
yield data
# teardown: очищаем (например, удаляем из БД)
# cleanup_code()
def test_user_name(user_data):
assert user_data["name"] == "Alice"

Фикстуры делают тесты чище, модульнее и легче поддерживаемыми.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью