Подход к тестированию backend-сервисов: unit, интеграционные и gRPC-тесты.
Уровни тестирования
Unit-тесты
- Что: domain logic, use cases с подмененными репозиториями (mock/stub).
- Инструменты: pytest, pytest-asyncio, factory_boy для фикстур.
- Правило: без реальной БД и Kafka; быстрые, изолированные.
- Расположение:
tests/unit/, именаtest_*.py.
Интеграционные тесты
- Что: сценарии с реальной БД (и при необходимости Redis, Kafka) в Docker (testcontainers).
- Инструменты: pytest, testcontainers, реальный UoW и репозитории.
- Использование: проверка миграций, репозиториев, outbox-публикации.
- Расположение:
tests/integration/.
gRPC-тесты
- Что: вызов gRPC-методов сервера (in-process или по сети) с проверкой ответов и кодов ошибок.
- Инструменты: grpcio-testing, pytest; при необходимости подмена UoW.
- Расположение:
tests/unit/api/илиtests/integration/api/.
Запуск
1 2 3 4 5 6 7 8 | |
Фикстуры
- Общие фикстуры (session, DB, Kafka) — в
conftest.py. - Фабрики сущностей — factory_boy или свои фабрики в
tests/factories/.
Связанные страницы
- Service Patterns — слои и зависимости для моков
- Local Setup — окружение для тестов
- QA / Test Pyramid — стратегия тестирования