Sobes.tech
Back to questions
Junior — Middle
88

Какое отличие между ключевыми словами Yield и Return в контексте тестирования с использованием PyTest?

Companies where asked
РостелекомРостелеком

Answer from AI

sobes.tech AI

В контексте 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 — просто возвращать значение.