Junior — Middle
Aký je rozdiel medzi kľúčovými slovami Yield a Return v kontexte testovania s PyTest?
sobes.tech AI
Odpoveď od AI
V kontexte PyTest sa klúčovými slovami yield a return sa pracuje vo fixture-och, ale majú odlišné úlohy.
-
returnjednoducho vráti hodnotu z fixture, ktorá bude dostupná v teste. -
yieldsa používa na rozdelenie fixture na dve časti: predyield— príprava, poyield— kód na upratovanie (teardown). To umožňuje vykonávať akcie po teste, napríklad uvoľnenie zdrojov.
Príklad fixture s yield:
import pytest
@pytest.fixture
def resource():
# príprava
res = acquire_resource()
yield res
# upratovanie
release_resource(res)
Ak použijete return, kód po ňom sa nevykoná a upratovanie sa neuskutoční automaticky.
V skratke, yield v fixture-och PyTest umožňuje pohodlne riadiť životný cyklus zdrojov, zatiaľ čo return iba vracia hodnotu.