Sobes.tech
Back to questions
Junior — Middle
60

Какой инструмент или библиотеку вы применяете для имитации процесса при разработке с FastAPI?

Answer from AI

sobes.tech AI

Для имитации (mocking) при разработке с FastAPI часто используют библиотеку pytest вместе с pytest-mock или стандартный модуль unittest.mock. Это позволяет подменять зависимости, например, базы данных или внешние API, чтобы тестировать логику приложения изолированно.

Пример использования unittest.mock для подмены зависимости:

from fastapi import FastAPI, Depends
from unittest.mock import MagicMock
import pytest

app = FastAPI()

def get_data():
    # Представим, что это запрос к базе данных
    return "реальные данные"

@app.get("/items")
def read_items(data=Depends(get_data)):
    return {"data": data}

# В тесте
@pytest.fixture
def mock_get_data(monkeypatch):
    monkeypatch.setattr("main.get_data", lambda: "заглушка")

def test_read_items(mock_get_data):
    from fastapi.testclient import TestClient
    client = TestClient(app)
    response = client.get("/items")
    assert response.json() == {"data": "заглушка"}

Таким образом, можно имитировать поведение зависимостей и тестировать FastAPI-приложение без реальных вызовов.