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 објекти помажу у контролисању понашања зависности и провери како тестирани код интерагује са њима.