Sobes.tech
Back to questions
Junior — Middle
49

Можете объяснить понятие области видимости (scope) у фикстур в тестовых сценариях?

Answer from AI

sobes.tech AI

Область видимости (scope) фикстур в тестах определяет, как долго и где доступна фикстура в процессе выполнения тестов.

В pytest, например, фикстуры могут иметь следующие области видимости:

  • function (по умолчанию): фикстура создаётся заново для каждого тестового метода или функции.
  • class: фикстура создаётся один раз на весь класс тестов и используется всеми методами внутри.
  • module: фикстура создаётся один раз на весь модуль (файл) тестов.
  • session: фикстура создаётся один раз на всю сессию запуска тестов.

Пример фикстуры с областью видимости module:

import pytest

@pytest.fixture(scope="module")
def db_connection():
    conn = create_connection()
    yield conn
    conn.close()

Это значит, что соединение с базой данных будет создано один раз для всех тестов в модуле, что экономит время и ресурсы.

Выбор области видимости зависит от того, насколько часто нужно создавать и уничтожать ресурсы, и от изоляции тестов.