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