Что такое Mock в тестировании

Python Middle Без компании
Что такое Mock в тестировании
Ответы
Mock (или mock-объект) — это специальный объект, имитирующий поведение реального объекта в тестах. Он используется для замены зависимостей, чтобы изолировать тестируемый код и контролировать его окружение. **Основные цели Mock:** - Замена сложных или медленных зависимостей (например, API, БД) - Проверка вызовов методов с нужными аргументами - Контроль возвращаемых значений или исключений **Пример с `unittest.mock`:** ``` from unittest.mock import Mock # Создаем mock-объект mock_db = Mock() # Задаем возвращаемое значение mock_db.get_user.return_value = {"id": 1, "name": "Alice"} # Имитируем вызов метода user = mock_db.get_user(1) print(user) # {'id': 1, 'name': 'Alice'} # Проверяем, был ли вызван метод mock_db.get_user.assert_called_once_with(1) ``` **Когда использовать:** - Для unit-тестов, чтобы избежать побочных эффектов - Для тестирования взаимодействия между компонентами - Для симуляции ошибок (например, `mock_db.get_user.side_effect = Exception("DB error")`) Mock часто путают с `stub` или `spy`, но он дает больше возможностей для проверки поведения.