Junior — Middle
Оё метавонед шарҳ диҳед, ки дар истифодаи pytest объектҳои mock чӣ маъно доранд?
sobes.tech AI
Ҷавоб аз AI
Объектҳои 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 кӯмак мекунанд, ки рафтори вобастагиҳоро назорат кунанд ва чӣ гуна коди санҷишшаванда бо онҳо ҳамкорӣ мекунад, санҷида шаванд.