Sobes.tech
Junior — Middle
63

Можете объяснить концепцию мокирования в тестировании программного обеспечения?

Answer from AI

sobes.tech AI

Мокирование — это техника в тестировании, когда вместо реальных зависимостей (например, классов, сервисов, баз данных) используются специальные объекты — моки. Они имитируют поведение реальных компонентов, позволяя изолировать тестируемый код и контролировать его окружение.

Основные цели мокирования:

  • Изолировать тестируемый модуль от внешних зависимостей.
  • Управлять поведением зависимостей (например, заставить метод возвращать нужное значение).
  • Проверять, как тестируемый код взаимодействует с зависимостями (вызывал ли нужные методы, с какими параметрами).

В Python для мокирования часто используют библиотеку unittest.mock:

from unittest.mock import Mock

def fetch_data(api_client):
    response = api_client.get('/data')
    return response.json()

# В тесте
mock_api = Mock()
mock_api.get.return_value.json.return_value = {'key': 'value'}

result = fetch_data(mock_api)
assert result == {'key': 'value'}