> Что такое mock и для чего он используется (Python)

Уровень: junior · Роль: backend · Язык: Python · Категория: Технические вопросы

Компании: JetLend

Стек: Python

> Пример ответа

Mock (от англ. "подделка") - это объект-заглушка, который имитирует поведение реального компонента (например, базы данных, внешнего API или сервиса) в тестах. В Python для создания моков чаще всего используется библиотека unittest.mock.

Основная цель mock - изолировать тестируемый код от внешних зависимостей. Это позволяет:

  • Тестировать логику без реальных вызовов: например, при тестировании функции, отправляющей email, mock заменяет SMTP-сервер, проверяя только, что метод send был вызван с правильными аргументами.
  • Контролировать возвращаемые значения: можно задать, что mock возвращает при вызове, чтобы протестировать разные сценарии (успех, ошибка, граничные случаи).
  • Ускорять тесты: реальные запросы к БД или API могут быть медленными, а mock работает мгновенно.
  • Проверять взаимодействие: с помощью assert_called_with или call_count можно убедиться, что методы вызывались нужное число раз и с правильными параметрами.

Пример на Python:

PYTHON
from unittest.mock import Mock
# Создаем mock для внешнего сервиса
external_service = Mock()
external_service.get_data.return_value = {"key": "value"}
# Тестируем функцию, которая использует этот сервис
def process_data(service):
data = service.get_data()
return data["key"]
result = process_data(external_service)
assert result == "value"
external_service.get_data.assert_called_once()

Mock не заменяет интеграционные тесты, но критически важен для юнит-тестов, где нужно проверить логику кода в изоляции.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью