Корректно ли использовать в этой фикстуре return или нужен yield?

В контексте PyTest ключевые слова yield и return используются в фикстурах, но имеют разные роли.

Короткий ответ

Что ответить на собеседовании

В контексте PyTest ключевые слова yield и return используются в фикстурах, но имеют разные роли.

Подробный разбор

Ответ с пояснениями

В контексте PyTest ключевые слова yield и return используются в фикстурах, но имеют разные роли.

  • return просто возвращает значение из фикстуры, которое будет доступно тесту.
  • yield используется для разделения фикстуры на две части: до yield — подготовка, после yield — код очистки (teardown). Это позволяет выполнять действия после теста, например, освобождение ресурсов.

Пример фикстуры с yield:

import pytest

@pytest.fixture
def resource():
    # подготовка
    res = acquire_resource()
    yield res
    # очистка
    release_resource(res)

Если использовать return, то код после него не выполнится, и очистка не произойдет автоматически.

Итого, yield в фикстурах PyTest позволяет удобно управлять жизненным циклом ресурсов, а return — просто возвращать значение.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее