Junior — Middle
Wat is het verschil tussen de sleutelwoorden Yield en Return in de context van testen met PyTest?
sobes.tech AI
Antwoord van AI
In de context van PyTest worden de sleutelwoorden yield en return gebruikt in fixtures, maar hebben ze verschillende rollen.
-
returngeeft eenvoudigweg een waarde terug uit de fixture, die beschikbaar is voor de test. -
yieldwordt gebruikt om de fixture in twee delen te splitsen: vóóryield— voorbereiding, nayield— opruimcode (teardown). Dit stelt je in staat om acties na de test uit te voeren, zoals het vrijmaken van resources.
Voorbeeld van een fixture met yield:
import pytest
@pytest.fixture
def resource():
# voorbereiding
res = acquire_resource()
yield res
# opruimen
release_resource(res)
Als je return gebruikt, wordt de code erna niet uitgevoerd en vindt automatische opruiming niet plaats.
Kortom, yield in PyTest fixtures maakt het gemakkelijk om de levenscyclus van resources te beheren, terwijl return simpelweg een waarde teruggeeft.