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

  • return jednoducho vráti hodnotu z fixture, ktorá bude dostupná v teste.

  • yield sa používa na rozdelenie fixture na dve časti: pred yield — príprava, po yield — 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.