Junior — Middle
Quelle est la différence entre les mots-clés Yield et Return dans le contexte des tests avec PyTest?
sobes.tech IA
Réponse de l'IA
Dans le contexte de PyTest, les mots-clés yield et return sont utilisés dans les fixtures, mais ont des rôles différents.
-
returnrenvoie simplement une valeur de la fixture, qui sera accessible au test. -
yieldest utilisé pour diviser la fixture en deux parties : avantyield— préparation, aprèsyield— code de nettoyage (teardown). Cela permet d'effectuer des actions après le test, comme libérer des ressources.
Exemple de fixture avec yield :
import pytest
@pytest.fixture
def resource():
# préparation
res = acquire_resource()
yield res
# nettoyage
release_resource(res)
Si l'on utilise return, le code après ne sera pas exécuté et le nettoyage ne sera pas effectué automatiquement.
En résumé, yield dans les fixtures PyTest permet de gérer facilement le cycle de vie des ressources, tandis que return sert simplement à renvoyer une valeur.