Junior — Middle
Jaký je rozdíl mezi klíčovými slovy Yield a Return v kontextu testování s PyTest?
sobes.tech AI
Odpověď od AI
V kontextu PyTest jsou klíčová slova yield a return používána ve fixture, ale mají odlišné role.
-
returnjednoduše vrací hodnotu z fixture, která bude dostupná v testu. -
yieldse používá k rozdělení fixture na dvě části: předyield— příprava, poyield— kód úklidu (teardown). To umožňuje provádět akce po testu, například uvolnění zdrojů.
Příklad fixture s yield:
import pytest
@pytest.fixture
def resource():
# příprava
res = acquire_resource()
yield res
# úklid
release_resource(res)
Pokud použijete return, kód po něm se nevykoná a úklid se neprovede automaticky.
Stručně řečeno, yield ve fixture PyTest umožňuje pohodlně řídit životní cyklus zdrojů, zatímco return pouze vrací hodnotu.