Uma desenvolvedora foi contratada para a equipe de desenvolv...
Ao pesquisar sobre o assunto, ela encontrou uma boa definição para esse termo, que explicava que stub é(são)
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a B.
Vamos entender por quê:
Stub, em desenvolvimento de software, é um componente usado durante a fase de testes. Ele funciona como uma implementação mínima que permite que certas partes do código sejam testadas sem depender de outros componentes ainda não implementados ou disponíveis. Basicamente, um stub "finge" ser uma parte do sistema para permitir que os testes sejam realizados.
Alternativa B: "a implementação que permite fornecer respostas prontas, sendo usada nas situações em que se deseja validar apenas o resultado." é a correta porque ela descreve precisamente o que é um stub. Stubs são utilizados para fornecer respostas prontas e específicas durante os testes, permitindo que a desenvolvedora valide o comportamento do código sem precisar da implementação completa de todos os componentes.
Alternativa A: "a implementação real, mas não necessariamente igual à implementação que estará no ambiente de produção." está incorreta. Isso descreve um ambiente de teste ou uma versão de desenvolvimento, não um stub. Um stub é uma simulação, não uma implementação real.
Alternativa C: "a técnica que permite criar métodos com o mesmo nome em uma mesma classe, e o que varia entre os métodos escritos são os tipos de informações que poderão receber em seus parâmetros." está descrevendo a sobreposição de métodos (também conhecida como overloading), e não um stub.
Alternativa D: "os objetos fornecidos, mas não utilizados, sendo geralmente usados no preenchimento da lista de parâmetros." está incorreta. Isso poderia se referir a objetos fictícios ou placeholders, mas não descreve a função de um stub.
Alternativa E: "os objetos pré-programados que verificam se um ou mais métodos foram ou não chamados, a ordem de chamadas, se foram chamados com os argumentos certos e quantas vezes foram chamados." descreve mocks, que são utilizados em testes unitários para verificar interações entre objetos, diferente dos stubs que são usados para fornecer respostas prontas.
Portanto, a alternativa B é a correta, pois define claramente o conceito de stub como uma implementação que fornece respostas prontas para testes.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Stubs: Retorna respostas prontas para chamadas feitas durante o teste, geralmente não respondendo a nada fora do que está programado para o teste.
é uma implementação temporária de um componente de software usado para simular o comportamento de outro componente, geralmente é usado em teste únitário!
Um **stub** é um objeto utilizado em testes de software que fornece respostas prontas para chamadas de métodos. Ele é usado em situações onde se deseja validar apenas o resultado, sem envolver a implementação real dos métodos. A definição correta para **stub** é:
**B: a implementação que permite fornecer respostas prontas, sendo usada nas situações em que se deseja validar apenas o resultado.**
### Explicação
- **Stubs** são frequentemente usados em testes unitários para substituir partes do sistema que são difíceis de configurar ou que ainda não foram implementadas.
- Eles fornecem valores de retorno pré-determinados quando os métodos são chamados, permitindo que os testes se concentrem no comportamento de uma parte específica do código sem dependências externas ou complexidades.
### Outras Definições (para esclarecer):
- **A**: Implementação real, mas não necessariamente igual à implementação que estará no ambiente de produção.
- Não se aplica a stubs; essa descrição pode estar mais próxima de um **mock**.
- **C**: Técnica que permite criar métodos com o mesmo nome em uma mesma classe, variando os tipos de informações que poderão receber em seus parâmetros.
- Isso descreve **sobrecarga de métodos** (method overloading), não stubs.
- **D**: Objetos fornecidos, mas não utilizados, sendo geralmente usados no preenchimento da lista de parâmetros.
- Isso descreve **dummy objects**, que são usados para preencher parâmetros, mas não têm comportamento.
- **E**: Objetos pré-programados que verificam se um ou mais métodos foram ou não chamados, a ordem de chamadas, se foram chamados com os argumentos certos e quantas vezes foram.
- Isso descreve **mocks**, que são usados para verificar a interação entre os objetos durante os testes.
Portanto, a definição correta para stub é **B**.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo