Junior — Middle
Можете ли да обясните какво се разбира под mock-обекти при използване на pytest?
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 објектите помагаат да се контролира однесувањето на зависностите и да се провери како тестираниот код соработува со нив.