Как проверить, что код правильно взаимодействует с внешним сервисом

Python Middle Без компании
Как проверить, что код правильно взаимодействует с внешним сервисом
Ответы
Для проверки взаимодействия с внешним сервисом используйте **моки** (mock-объекты) и **стабы** в тестах. Библиотека `unittest.mock` позволяет подменять реальные вызовы на тестовые заглушки. Пример: ``` from unittest.mock import patch import requests def fetch_data(): response = requests.get('https://api.example.com/data') return response.json() # Тест с моком @patch('requests.get') def test_fetch_data(mock_get): mock_get.return_value.json.return_value = {'key': 'value'} result = fetch_data() assert result == {'key': 'value'} mock_get.assert_called_once_with('https://api.example.com/data') ``` **Ключевые моменты:** - Используйте `patch` для подмены HTTP-запросов. - Проверяйте, что мок вызывается с правильными аргументами (`assert_called_with`). - Тестируйте обработку ошибок (например, `requests.Timeout`). - Для интеграционных тестов можно поднимать тестовый сервер (например, `pytest-httpserver`).