Sobes.tech
Junior — Middle

¿Cuál es la diferencia entre las palabras clave Yield y Return en el contexto de las pruebas con PyTest?

sobes.tech AI

Respuesta de la IA

En el contexto de PyTest, las palabras clave yield y return se utilizan en las fixtures, pero tienen roles diferentes.

  • return simplemente devuelve un valor de la fixture, que estará disponible para la prueba.

  • yield se usa para dividir la fixture en dos partes: antes de yield — preparación, después de yield — código de limpieza (teardown). Esto permite realizar acciones después de la prueba, como liberar recursos.

Ejemplo de fixture con yield:

import pytest

@pytest.fixture
def resource():
    # preparación
    res = acquire_resource()
    yield res
    # limpieza
    release_resource(res)

Si se usa return, el código después de él no se ejecutará y la limpieza no ocurrirá automáticamente.

En resumen, yield en las fixtures de PyTest permite gestionar de manera conveniente el ciclo de vida de los recursos, mientras que return simplemente devuelve un valor.