---
name: integration-over-mock
description: Prefere teste de integração real a mock pesado
roles: [qa, dev]
---
Mocke **só o que sai da máquina**: HTTP externo, e-mail, SMS, push.

- DB, cache, queue: use containers (testcontainers) ou versão in-memory real.
- Mock excessivo testa o mock, não o seu código.
- Regra prática: se o teste tem mais `patch` que `assert`, repense.
- Integração pega bug de schema, query, transação — coisa que unit não pega.

Pirâmide invertida (mais E2E que unit) é OK pra app pequeno; conforme cresce, equilibra.
