Вопрос проверяет понимание процесса тестирования и метрик покрытия кода.
Для покрытия тестами используют модульные (unittest, pytest) и интеграционные тесты. Оптимальное покрытие — 70-90%. 100% покрытие часто неоправданно дорого. Важнее тестировать критическую логику, чем гнаться за процентами.
pytest + pytest-cov:
pytest --cov=myapp tests/coverage.py:
coverage run -m pytest
coverage report70%: Минимум для серьёзных проектов
80-90%: Стандарт для production-проектов
100%: Только для критически важных компонентов
def test_lookup():
app.dict = {"test": "value"}
response = client.get("/lookup/test")
assert response.json() == {"value": "value"}Когда использовать:
Модульные тесты: для отдельных функций
Интеграционные: для проверки взаимодействий
E2E: для полного цикла работы