Sobes.tech
Назад к вопросам
Junior — Middle
64

Имел ли опыт работы с механизмом области видимости fixture в тестовых фреймворках?

Компании, где спрашивали
ООО Корпорация ЗНАК

Ответ от нейросети

sobes.tech AI

В тестовом фреймворке pytest в Python механизм области видимости (scope) fixture определяет, как долго живет fixture и когда она создается и уничтожается. Основные области видимости:

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

Пример:

import pytest

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

def test_query1(db_connection):
    assert db_connection.query("SELECT 1") == 1

def test_query2(db_connection):
    assert db_connection.query("SELECT 2") == 2

Здесь db_connection создается один раз на модуль и используется в нескольких тестах, что экономит ресурсы и время.