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.
-
returnsimplemente devuelve un valor de la fixture, que estará disponible para la prueba. -
yieldse usa para dividir la fixture en dos partes: antes deyield— preparación, después deyield— 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.