Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — CESPE / CEBRASPE 2024
Arquitetura de Software›Padrões de projeto (Design Patterns)
Código
ce176780
Banca
CESPE / CEBRASPE
Órgão
MPE-TO
Ano
2024
Nível
Superior
Cargo
Analista Ministerial Especializado - Área de Atuação: Análise de Sistemas
Com relação ao padrão MVC (Model View Controller), a padrões de projeto e a orientação a objetos, julgue o item subsequente.O padrão Singleton facilita o teste unitário, pois garante que sempre haverá uma única instância da classe para testar.
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoE — Errado
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Padrão Singleton e Teste Unitário
❌ ERRADO. A afirmação está incorreta. O padrão Singleton dificulta o teste unitário, não o facilita. Isso porque o Singleton introduz um estado global que persiste entre os testes, gerando dependências ocultas e dificultando o isolamento das unidades de código. Além disso, a criação de uma única instância torna complicado substituí-la por mocks ou stubs para simular diferentes cenários de teste.
A banca explora uma confusão comum: o candidato pode pensar que ter uma única instância torna o teste mais simples, mas, na prática, o Singleton é considerado um anti-padrão para testabilidade. Para testar classes que dependem de um Singleton, é necessário resetar o estado entre os testes ou utilizar técnicas como injeção de dependência para quebrar o acoplamento.
Singleton e teste unitário
1Dificulta (não facilita)
Estado global persiste entre testes
Dependências ocultas
Isolamento prejudicado
Substituição por mock/stub complicada
2Soluções
Resetar estado entre testes
Injeção de dependência
LEVEL · soulevel.com.br
NÃO CAIA NESSA!
A afirmação inverte o efeito real: diz "facilita" quando na verdade dificulta. Lembre-se: estado global e acoplamento forte são inimigos do teste unitário.