O documento discute os conceitos básicos de Test Driven Development (TDD), incluindo por que testar sistemas, como funciona o desenvolvimento guiado por testes, vantagens do TDD e como aplicá-lo na prática com exemplos de testes de unidade.
6. Test Driven Development
Teste de unidade para nova
funcionalidade
Teste
Falhou
Código mais simples que
resolva o problema
Melhoramos o
código
(se necessário)
7. Vantagens
● Melhora na estrutura e design da Classe
● Simplificação
● O Código já nasce testado
● Feedback constante
13. Qualidade do código de teste
Carrinho de compras:
Uma funcionalidade que devolva o valor do item de maior valor
dentro desse carrinho de compras. Pensando já nos testes,
temos os seguintes cenários:
• Se o carrinho só tiver um item
• Se o carrinho tiver muitos itens
• Um carrinho sem nenhum item
18. Mock Objects
Usar ou não usar?
Faz exatamente o que você definir
Simular todas as dependências
Difícil manutenção se usado em excesso
Podem ocultar problemas em dependências que só apareceriam em testes de integração
Infraestrutura e testes complicados
Intimidade inapropriada
TDD ao estilo londrino
19. Semelhança com o mundo real
Testes unitários TeTsetesste dse u inntietágrriaoçsão Testes de sistema
Mais caro e mais difícil de ser escrito
20. Test Driven Development
E quando não usar TDD?
Usar TDD em testes de integração?
Aplicações WEB ?
Quando não praticar?
Sua classe necessita de um feedback constante?
22. Apresentação baseada no Livro
Test Driven Development
Teste e Design no Mundo Real - Mauricio Aniche
Outra referências:
http://blog.caelum.com.br/facilitando-seus-testes-de-unidade-
no-java-um-pouco-de-mockito/
http://gc.blog.br/2007/08/28/mock-objects-em-excesso-podem-
atrapalhar/