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

  • return jednoduše vrací hodnotu z fixture, která bude dostupná v testu.

  • yield se používá k rozdělení fixture na dvě části: před yield — příprava, po yield — 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.