25 de Abril de 2025
Mock Demais: Quando o Teste Para de te Proteger
Como perceber quando a suíte está isolando tanto que já não encosta mais no risco real do sistema.
Andrews Ribeiro
Founder & Engineer
4 min Intermediario Sistemas
O problema
Mock resolve um problema real.
Ele:
- acelera teste
- isola dependência cara
- ajuda a focar numa regra
Só que muita gente descobre esse poder e exagera.
Daqui a pouco o teste mocka:
- banco
- fila
- cliente HTTP
- cache
- relógio
- metade do serviço
E conclui que o sistema está protegido.
Nem sempre está.
Às vezes o teste virou um teatro bem organizado onde tudo coopera para passar.
Modelo mental
Pense assim:
mock serve para controlar fronteira. Quando ele substitui justamente a parte onde o risco mora, o teste perde honestidade.
O ponto não é “usar mock é errado”.
O ponto é:
- o que estou isolando?
- por que estou isolando?
- o que deixei de validar ao fazer isso?
Sem essa pergunta, mock vira conforto falso.
Quebrando o problema
Mock é útil quando a dependência não é o foco
Se você quer testar:
- cálculo
- regra de negócio
- decisão de estado
e a dependência externa só atrapalha o feedback, mock faz sentido.
Exemplo:
- gateway de pagamento não é o foco do cálculo de desconto
- relógio real não é o foco da regra de expiração
Nesse caso, isolar ajuda.
Mock começa a atrapalhar quando a costura é justamente o risco
Se o que pode quebrar é:
- payload errado
- integração mal encaixada
- persistência não acontecendo
- evento não sendo publicado
então mockar tudo isso tira o teste da zona onde o bug realmente mora.
O teste fica rápido.
Também fica cego.
Muito mock pode esconder acoplamento ruim
Esse é um sinal clássico:
- para testar uma função simples você precisa montar dez mocks
- cada refatoração quebra um monte de setup artificial
- o teste parece mais difícil que o comportamento em si
Quando isso acontece, o problema pode não ser falta de teste.
Pode ser design ruim pedindo isolamento demais para conseguir respirar.
Teste verde não significa teste honesto
Esse ponto derruba muita confiança falsa.
Se o teste só passa porque:
- o repositório mockado aceita qualquer coisa
- o cliente HTTP mockado responde sempre perfeito
- o publicador de evento mockado nunca falha
então boa parte do risco real foi empurrada para fora da suíte.
Suba de camada quando o mock começar a mentir
Às vezes o melhor ajuste não é “mais mock”.
É mudar a pergunta.
Em vez de:
- testar serviço com tudo isolado
você passa para:
- teste de integração com banco real de teste
- teste de API com validação e persistência de verdade
- teste de componente com rede controlada, mas fluxo real
Isso custa mais.
Mas compra honestidade onde o isolamento estava escondendo a falha.
Exemplo simples
Imagine um endpoint de criação de pedido.
Teste com mock demais:
- mocka validação
- mocka repositório
- mocka cliente de estoque
- mocka publicador de evento
O resultado:
- o teste prova que uma sequência idealizada de chamadas aconteceu
Mas não prova se:
- o pedido persistiu
- o payload bate com o contrato
- o evento foi publicado com formato correto
Um teste de integração bem escolhido, nesse caso, provavelmente protege mais do que cinco testes superisolados.
Erros comuns
- Mockar justamente a integração que mais precisava ser validada.
- Usar mock para fugir de ambiente de teste minimamente real.
- Tratar qualquer dependência como se fosse detalhe irrelevante.
- Medir valor da suíte pela velocidade e esquecer honestidade.
- Achar que muito mock é sinal automático de maturidade em testes.
Como um senior pensa
Quem tem mais experiência costuma perguntar:
“O que este teste está deixando de tocar por causa do mock, e esse pedaço é justamente onde o bug costuma morar?”
Essa pergunta impede muito autoengano.
Senioridade aqui aparece quando a pessoa usa mock para focar, não para maquiar risco.
O que o entrevistador quer ver
Em entrevista, o avaliador quer ver se você entende trade-off, não se você ama ou odeia mock.
Você sobe de nível quando:
- reconhece onde mock acelera sem mentir
- percebe quando ele esconde integração real
- fala de honestidade da suíte, não só de velocidade
- sabe mover parte da confiança para integração quando necessário
Uma resposta forte costuma soar assim:
“Eu uso mock quando a dependência não é a pergunta central do teste. Mas se o risco está justamente na costura com banco, fila ou contrato externo, isolar demais pode me dar uma suíte verde que não me protege na prática.”
Mock demais não deixa o sistema mais seguro. Só deixa o teste mais confortável.
Quando a suíte passa porque o mundo falso cooperou, a confiança ficou barata demais.
Resumo rápido
O que vale manter na cabeça
- Mock é ferramenta, não estratégia inteira de confiança.
- Se o teste substitui tudo que realmente pode falhar, ele deixa de tocar no risco real.
- Muito mock costuma esconder acoplamento ruim e costura quebrada.
- Suíte honesta usa isolamento com critério e sobe de camada quando precisa validar integração de verdade.
Checklist de pratica
Use isto ao responder
- Consigo perceber quando estou mockando justamente a parte que mais precisava validar?
- Sei dizer quando um teste deveria virar integração em vez de ganhar mais stubs?
- Consigo explicar o custo de uma suíte “verde” que não encosta no mundo real?
- Sei responder em entrevista quando mock ajuda e quando passa do ponto?
Você concluiu este artigo
Próximo passo
Unit, integration e e2e Próximo passo →Compartilhar esta página
Copie o link manualmente no campo abaixo.