Встречается на собеседованиях • сегодня

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

Для тестирования взаимодействия с внешним сервисом в Python можно использовать несколько подходов:

  1. Mock-объекты (unittest.mock) - заменяют реальные вызовы API:
python
from unittest.mock import patch

def test_external_api():
    with patch('requests.get') as mock_get:
        mock_get.return_value.json.return_value = {'key': 'value'}
        response = call_external_service()
        assert response == {'key': 'value'}
  1. Тестовые серверы - можно поднять локальный сервер для тестов (например, с помощью responses или httpx):
python
import responses

@responses.activate
def test_api():
    responses.add(
        responses.GET, 'http://api.example.com',
        json={'data': 'test'}, status=200
    )
    response = requests.get('http://api.example.com')
    assert response.json() == {'data': 'test'}
  1. VCR.py - записывает и воспроизводит реальные HTTP-запросы:
python
import vcr

@vcr.use_cassette('fixtures/vcr_cassettes/test_api.yaml')
def test_api():
    response = requests.get('https://api.example.com')
    assert response.status_code == 200

Для интеграционных тестов можно использовать реальные вызовы, но с тестовыми данными и отдельным окружением. Важно изолировать тесты от реального сервиса в большинстве случаев.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы