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