18.10. Service Stub
Implementação falsa de um serviço externo para testes e desenvolvimento.
Resumo
- Remove a dependência de serviços externos problemáticos (lentos, instáveis, pagos) durante testes.
- Substitui o serviço por uma implementação local, rápida e em memória.
- Fica atrás de um Gateway com Separated Interface; trocado via Plugin.
- Mantenha o stub simples: valores fixos ou regras mínimas. Pode ter métodos de configuração para testes.
- Hoje parecido com mocks/fakes; o objetivo é testar o próprio código sem o externo.
Perguntas-chave
responda de cabeça, depois abraQuando usar Service Stub?
Quando um serviço externo atrapalha testes ou desenvolvimento por ser lento, instável, caro ou indisponível.
Como o stub é conectado?
Implementando a interface do Gateway e escolhido via Plugin ou configuração.
Qual o cuidado ao escrever um stub?
Mantê-lo simples; um stub complexo vira um segundo sistema a manter.
Exercícios de fixação
0/5 respondidas1.
O serviço de cálculo de impostos cobra por chamada e cai frequentemente. Nos testes, usa-se
TaxServiceStub que devolve 10%. Qual padrão?2.
Que padrões tornam a troca do serviço real pelo stub limpa?
3.
Qual a recomendação de Fowler sobre a complexidade do stub?
4.
Qual benefício principal do Service Stub?
5.
Um stub pode ter métodos extras como
definirAliquota(0.2)?