Sobes.tech
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.

  • return simplesmente devolve um valor da fixture, que estará disponível para o teste.

  • yield é usado para dividir a fixture em duas partes: antes do yield — preparação, após o yield — 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.