Рекомендуемое соотношение уровней тестирования: много быстрых unit-тестов, меньше integration, ещё меньше API/e2e.
Уровни (снизу вверх)
| Уровень | Доля | Назначение | Скорость | Зависимости |
|---|---|---|---|---|
| Unit | Основа | Доменная логика, use case’ы с моками репозиториев | Быстро | Нет внешних |
| Integration | Меньше | Репозитории, UoW, outbox, реальная БД (testcontainers) | Средне | PostgreSQL, при необходимости Kafka/Redis |
| API / Contract | Ещё меньше | gRPC (REST) вызовы, коды ошибок, контракты | Средне | Сервис поднимается |
| E2E | Минимум | Сквозные сценарии через API Gateway | Медленно | Вся цепочка |
Принципы
- Изоляция unit-тестов — без БД и сети; только логика и контракты (Protocol/моки).
- Integration — проверка «реально ли мы пишем в БД и в outbox»; один тест может покрывать сценарий целиком (create user → outbox record).
- E2E — только критичные пути (регистрация, логин, один ключевой flow); не дублировать unit/integration сценарии.
В платформе AIOps
- Python-сервисы: pytest, testcontainers для PostgreSQL; gRPC-тесты через клиент к поднятому приложению или in-process.
- См. Backend Testing для деталей по запуску и фикстурам.
Связанные страницы
- Quality Strategy — общая стратегия качества
- Backend Testing — тестирование backend
- Automated Testing — автоматизация тестов
- Definition of Done — тесты в критериях готовности