Junior — Middle
Môžete vysvetliť, čo sa rozumie pod mock-objektmi pri použití pytest?
sobes.tech AI
Odpoveď od AI
Objekty mock v pytestu sú špeciálne objekty, ktoré napodobňujú správanie skutočných objektov alebo funkcií na testovanie. Umožňujú izolovať testovaný kód od externých závislostí, ako sú sieťové požiadavky, databázy alebo iné komponenty, aby bolo možné overiť logiku bez vykonávania skutočných operácií.
V pytestu sa na vytváranie mock objektov často používa knižnica unittest.mock, ktorá poskytuje triedu Mock a dekorátory na nahradenie funkcií a metód.
Príklad použitia mock na nahradenie funkcie:
from unittest.mock import Mock
def get_data():
# Predstavme si, že táto funkcia robí požiadavku na externé API
pass
def process():
data = get_data()
return data * 2
# V teste nahradíme get_data
mock_get_data = Mock(return_value=10)
# Nahradíme funkciu get_data mockom
get_data = mock_get_data
assert process() == 20
mock_get_data.assert_called_once()
Týmto spôsobom pomáhajú mock objekty kontrolovať správanie závislostí a overovať, ako s nimi testovaný kód interaguje.