Sobes.tech
Back to questions
Junior — Middle
63

Что необходимо сделать, если в юнит-тесте вызывается внешний сервис или ресурс?

Answer from AI

sobes.tech AI

Если в юнит-тесте вызывается внешний сервис или ресурс, необходимо изолировать тест от этих внешних зависимостей. Для этого используют мокирование (mocking) или стабирование (stubbing) — замену реальных вызовов на имитации, которые возвращают предсказуемые результаты.

Это позволяет:

  • Сделать тесты быстрыми и надежными.
  • Избежать сбоев из-за недоступности внешних сервисов.
  • Тестировать логику обработки ответов без реального вызова.

В Python для этого часто используют библиотеку unittest.mock:

from unittest.mock import patch

@patch('module.external_service_call')
def test_function(mock_service):
    mock_service.return_value = 'expected result'
    result = function_under_test()
    assert result == 'expected result'

Таким образом, реальный вызов заменяется на контролируемый мок.