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

  • return renvoie simplement une valeur de la fixture, qui sera accessible au test.

  • yield est utilisé pour diviser la fixture en deux parties : avant yield — préparation, après yield — 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.