Встречается на собеседованиях • сегодня

Работал ли с областью видимости fixture

Да, работал. В pytest фикстуры имеют несколько областей видимости (scope), которые определяют, как часто фикстура будет вызываться во время тестов:

  1. function (по умолчанию) - выполняется для каждой тестовой функции
  2. class - выполняется один раз для класса тестов
  3. module - выполняется один раз для модуля
  4. package - выполняется один раз для пакета
  5. session - выполняется один раз за сессию тестирования

Пример с разными scope:

python
import pytest

@pytest.fixture(scope='module')
def db_connection():
    conn = create_db_connection()  # Создаем соединение
    yield conn
    conn.close()  # Закрываем после всех тестов модуля

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

def test_query2(db_connection):
    # Использует то же соединение, что и test_query1
    result = db_connection.execute("SELECT 2")
    assert result == 2

Важно помнить, что фикстуры с более широким scope (например, session) выполняются до фикстур с более узким scope (например, function). Также нужно быть осторожным с изменяемыми объектами в фикстурах широкого scope, так как изменения будут видны между тестами.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы