Então, continuando com a minha resolução de ano novo de entrar mais no TDD, agora estou começando a trabalhar mais com Rhino Mocks .
Uma coisa que estou ansioso para fazer é ter certeza de que realmente groco no que estou entrando, então eu queria verificar meu entendimento do que vi até agora (e pensei que seria bom trazer isso aqui como um recurso).
O que é um "Stub"?
unit-testing
testing
tdd
stub
Rob Cooper
fonte
fonte
Respostas:
Martin Fowler escreveu um excelente artigo sobre esse assunto. Desse artigo:
Para colocar em minhas próprias palavras: os objetos simulados "esperam" que certos métodos sejam chamados neles e normalmente fazem com que um teste de unidade falhe se suas expectativas não forem atendidas. Objetos stub fornecem respostas prontas (e podem ser gerados automaticamente por bibliotecas auxiliares), mas normalmente não causam diretamente a falha do teste de unidade. Eles são normalmente usados apenas para que o objeto que você está testando obtenha os dados de que precisa para fazer seu trabalho.
fonte
Um "esboço" é uma implementação de uma interface que existe para fornecer dados / uma resposta de algum tipo. Por exemplo:
Normalmente, isso seria fornecido por outro serviço (seja um serviço da Web, outro aplicativo, um banco de dados), mas para melhorar a testabilidade do código, os resultados são "falsos".
Um grande benefício disso é que permite que as afirmações sejam feitas em testes de unidade com base nos dados esperados. Se ocorrerem erros devido a erros de dados, os testes podem ser facilmente adicionados, um novo stub criado (replicando o erro de dados) e o código produzido para corrigir o erro.
Stubs diferem de Mocks porque são usados para representar e testar o estado de um objeto, enquanto um Mock testa sua interação .
fonte
Eu acredito que "stub" vem de STartUpBlock. é usado para se referir a partes do código que são geradas automaticamente para ajudar você, o desenvolvedor, a começar.
fonte
Um "stub" ou "método stub" é projetado para ser um código inicial ou um substituto temporário para o código ainda a ser desenvolvido. É um código integrado gerado por um IDE. Os métodos stub são, na verdade, métodos usados para testar métodos de uma classe específica. Ele é usado inserindo alguns valores para as variáveis locais em seus métodos de desenvolvimento reais e verifique se a saída está correta. É importante para encontrar bugs em seu código.
fonte
Enfrentei a questão recentemente e reconheci que esta comparação entre Stub e Driver é realmente clara e útil:
Basicamente, stubs e drivers são rotinas que não fazem nada, exceto se declarar e os parâmetros que aceitam. O restante do código pode então pegar esses parâmetros e usá-los como entradas.
Da diferença entre stub e driver
fonte
Depois de alguma pesquisa e com base em arquivos stub que enfrentei durante minha vida de codificador, eu diria que um arquivo stub é apenas um arquivo que contém uma parte ou parte da implementação de um arquivo. Ajuda os desenvolvedores a começar a programar.
fonte