Pular para conteúdo

Estratégia de mock vs ambiente real

A decisão não é “mock ou real”, e sim quanto de cada um em cada estágio.

Matriz de decisão

+----------------------+-----------------------------+------------------------------+
| Critério             | Mock/Fake                   | Ambiente real                |
+----------------------+-----------------------------+------------------------------+
| Velocidade           | Muito alta                  | Média/baixa                  |
| Determinismo         | Alto                        | Médio (rede e infra variam)  |
| Custo de execução    | Baixo                       | Médio/alto                   |
| Fidelidade           | Média                       | Alta                         |
| Diagnóstico de falha | Fácil                       | Mais complexo                |
+----------------------+-----------------------------+------------------------------+

Regra de bolso por nível

  • Unitário: priorize mock/fake para isolamento.
  • Integração: prefira dependências reais locais (containers de banco/fila).
  • Contrato: mocks controlados no consumer + validação real no provider.
  • E2E/Smoke: ambiente o mais próximo possível de produção.

Padrão híbrido recomendado

flowchart LR
    A[PR - Testes rápidos] --> B[Build]
    B --> C[Unitários com mocks]
    C --> D[Integração com serviços reais containerizados]
    D --> E[Contrato]
    E --> F[Deploy em staging]
    F --> G[Smoke/E2E com ambiente real]

Cuidado com extremos

  • Mock em excesso: gera ilusão de segurança.
  • Ambiente real em excesso: pipeline lento, caro e instável.

Técnicas úteis

  • Virtualização de serviços para cenários raros (erro 429, timeout extremo).
  • Dados sintéticos realistas para simular volumetria e cardinalidade.
  • Feature flags para validar comportamento com tráfego controlado.