Sobes.tech
Junior — Middle

Можете ли да објасните шта подразумевају mock-објекти при коришћењу pytest?

sobes.tech АИ

Одговор од АИ

Објекти mock у pytest-у су посебни објекти који имитирају понашање стварних објеката или функција за тестирање. Они омогућавају изоловање тестованог кода од спољашњих зависности, као што су мрежни захтеви, базе података или други компоненти, како би се проверила логика без извршавања стварних операција.

У pytest-у, за креирање mock објеката, често се користи библиотека unittest.mock, која пружа класу Mock и декораторе за замену функција и метода.

Пример коришћења mock за замену функције:

from unittest.mock import Mock

def get_data():
    # Замислите да ова функција прави захтев према спољашњем API-ју
    pass

def process():
    data = get_data()
    return data * 2

# У тесту, заменимо get_data
mock_get_data = Mock(return_value=10)

# Заменимо функцију get_data са mock-ом
get_data = mock_get_data

assert process() == 20
mock_get_data.assert_called_once()

На овај начин, mock објекти помажу у контролисању понашања зависности и провери како тестирани код интерагује са њима.