Для имитации (mocking) при разработке с FastAPI часто используют библиотеку pytest вместе с pytest-mock или стандартный модуль unittest.mock. Это позволяет подменять зависимости, например, базы данных или внешние API, чтобы тестировать логику приложения изолированно.
Какой инструмент или библиотеку вы применяете для имитации процесса при разработке с FastAPI?
Для имитации (mocking) при разработке с FastAPI часто используют библиотеку pytest вместе с pytest-mock или стандартный модуль unittest.mock.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для имитации (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-приложение без реальных вызовов.