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()
Это значит, что соединение с базой данных будет создано один раз для всех тестов в модуле, что экономит время и ресурсы.
Выбор области видимости зависит от того, насколько часто нужно создавать и уничтожать ресурсы, и от изоляции тестов.