Junior — Middle
Qual é a diferença entre as palavras-chave Yield e Return no contexto de testes com PyTest?
sobes.tech IA
Resposta da IA
No contexto do PyTest, as palavras-chave yield e return são usadas em fixtures, mas têm papéis diferentes.
-
returnsimplesmente devolve um valor da fixture, que estará disponível para o teste. -
yieldé usado para dividir a fixture em duas partes: antes doyield— preparação, após oyield— código de limpeza (teardown). Isso permite realizar ações após o teste, como liberar recursos.
Exemplo de fixture com yield:
import pytest
@pytest.fixture
def resource():
# preparação
res = acquire_resource()
yield res
# limpeza
release_resource(res)
Se usar return, o código após ele não será executado e a limpeza não ocorrerá automaticamente.
Resumindo, yield em fixtures do PyTest permite gerenciar de forma conveniente o ciclo de vida dos recursos, enquanto return apenas devolve um valor.