Sobes.tech
Junior
19

Как тестировать работу приложения с внешними зависимостями (юнит-тесты)?

Companies where asked
Почтатех

Answer from AI

sobes.tech AI

Для юнит-тестирования кода с внешними зависимостями в Python обычно используют мок-объекты (mock). Это позволяет изолировать тестируемый код от реальных внешних сервисов, баз данных, API и т.д.

Основные подходы:

  • Использовать модуль unittest.mock для замены реальных вызовов на заглушки.
  • Мокать функции, методы или объекты, которые взаимодействуют с внешними системами.
  • Настраивать возвращаемые значения и проверять вызовы моков.

Пример:

from unittest import TestCase
from unittest.mock import patch

class MyService:
    def fetch_data(self):
        # Представим, что здесь запрос к внешнему API
        pass

class TestMyService(TestCase):
    @patch('path.to.module.MyService.fetch_data')
    def test_fetch_data(self, mock_fetch):
        mock_fetch.return_value = {'key': 'value'}
        service = MyService()
        result = service.fetch_data()
        self.assertEqual(result, {'key': 'value'})
        mock_fetch.assert_called_once()

Такой подход позволяет тестировать логику без реального вызова внешних сервисов.