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-приложение без реальных вызовов.