Sobes.tech
Junior — Middle

Koja je razlika između ključnih reči Yield i Return u kontekstu testiranja sa PyTest?

sobes.tech АИ

Одговор од АИ

U kontekstu PyTest, ključne reči yield i return koriste se u fixture-ima, ali imaju različite uloge.

  • return jednostavno vraća vrednost iz fixture-a, koja će biti dostupna testu.

  • yield se koristi za deljenje fixture-a na dva dela: pre yield — priprema, posle yield — kod za čišćenje (teardown). Ovo omogućava izvršavanje radnji nakon testa, kao što je oslobađanje resursa.

Primer fixture-a sa yield:

import pytest

@pytest.fixture
def resource():
    # priprema
    res = acquire_resource()
    yield res
    # čišćenje
    release_resource(res)

Ako se koristi return, kod nakon njega neće biti izvršen i čišćenje se neće automatski desiti.

Ukratko, yield u fixture-ima PyTest omogućava jednostavno upravljanje životnim ciklusom resursa, dok return samo vraća vrednost.