Questão de Engenharia de Software — Teste de Software — FGV 2025
Engenharia de Software›Teste de Software
Código
fg105418
Banca
FGV
Órgão
AL-AM
Ano
2025
Nível
Superior
Cargo
Analista Legislativo - Programador
Em um teste unitário para o método GerarProtocolo(Doc doc), o Analista de Programação precisa garantir que a lógica de negócio do método funcione corretamente. No entanto, o método GerarProtocolo depende da classe PersistenciaBD, que acessa o banco de dados.O objetivo do uso de objetos Mock ou Stub para substituir a classe PersistenciaBD durante o teste unitário é:
ATestar a conexão real entre a aplicação e o banco de dados.
BGarantir o Isolamento da unidade de código em teste, eliminando dependências externas e não-determinísticas
CMedir o tempo de execução da query SQL para identificar gargalos de performance.
DAutomatizar o preenchimento de formulários no frontend.
EValidar o contrato da API REST que o sistema consome.
Revelar gabarito e comentário▾
GabaritoB — Garantir o Isolamento da unidade de código em teste, eliminando dependências externas e não-determinísticas
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”.
Teste unitário e uso de mocks/stubs
Gabarito: letra B. O objetivo do uso de objetos Mock ou Stub em teste unitário é garantir o isolamento da unidade de código em teste, eliminando dependências externas (como banco de dados) e não-determinísticas, permitindo que a lógica de negócio seja testada de forma controlada e repetível.
O conteúdo de apoio reforça que "os testes de unidade ou testes unitários focalizam cada componente individualmente, garantindo que ele funcione adequadamente como uma unidade" e que "enfoca a lógica interna de processamento e as estruturas de dados dentro dos limites de um componente". O uso de mocks/stubs substitui dependências reais (como a classe PersistenciaBD) para que o teste não dependa de fatores externos (banco de dados, rede, etc.), tornando-o rápido e determinístico.
Alternativa A — ❌ Incorreta
Testar a conexão real com o banco de dados é objetivo de teste de integração, não de teste unitário. No teste unitário, a conexão real deve ser substituída por um mock/stub para isolar a unidade.
Alternativa B — ✅ Correta ⟵ GABARITO
Exatamente como descrito: eliminar dependências externas e não-determinísticas garante que o teste da unidade seja confiável e independente de ambiente. É o princípio fundamental do uso de mocks e stubs.
Alternativa C — ❌ Incorreta
Medir tempo de execução de query SQL é objetivo de teste de performance, não de teste unitário. O mock não avalia performance, apenas simula o comportamento da dependência.
Alternativa D — ❌ Incorreta
Automatizar preenchimento de formulários no frontend é tarefa de teste de interface (UI testing), não de teste unitário de backend.
Alternativa E — ❌ Incorreta
Validar contrato de API REST é objetivo de teste de contrato (como testes de integração ou consumer-driven contracts), não de teste unitário. O mock pode ser usado para simular a API, mas o foco não é validar o contrato.
NÃO CAIA NESSA!
A banca pode tentar confundir o candidato com opções que parecem relacionadas a testes (como validar API ou testar conexão), mas que são de integração, não de unidade. Lembre-se: o mock isola a unidade; a dependência real só aparece no teste de integração.