Как часто используешь mock в тестах
Python
Junior
Рунити
Как часто используешь mock в тестах
Ответы
Mock-объекты в Python (через `unittest.mock`) использую регулярно, когда нужно:
- **Изолировать тесты** от внешних зависимостей (API, БД, файловая система).
- **Эмулировать сложное поведение** (исключения, задержки).
- **Проверять вызовы** (например, был ли вызван метод с нужными аргументами).
**Пример:**
```
from unittest.mock import Mock
# Создаем mock-объект для API
api_mock = Mock()
api_mock.get_data.return_value = {"status": "success"}
# Тестируем функцию, использующую API
def process_data(api):
data = api.get_data()
return data["status"]
assert process_data(api_mock) == "success"
api_mock.get_data.assert_called_once() # Проверка вызова
```
**Когда не стоит mock-ить:**
- Если зависимость простая и быстрая (например, чистые функции).
- Если тест становится хрупким из-за излишней детализации (`assert_called_with` на каждый чих).
Использую по принципу: *"Мокать только то, что мешает тестам быть быстрыми и стабильными"*.