![Page 2: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/2.jpg)
Resolvendo o problema Resolvendo o problema certocerto
![Page 3: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/3.jpg)
Resolvendo o problema Resolvendo o problema certocerto
da maneira da maneira corretacorreta
![Page 4: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/4.jpg)
Códigos ruínsCódigos ruínsCódigos ruínsCódigos ruíns
• Defeitos• Defeitos
![Page 5: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/5.jpg)
Códigos ruínsCódigos ruínsCódigos ruínsCódigos ruíns
• Defeitos
• Manutenção
• Defeitos
• Manutenção
![Page 6: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/6.jpg)
Códigos ruínsCódigos ruínsCódigos ruínsCódigos ruíns
• Defeitos
• Manutenção
• Produtividade
• Defeitos
• Manutenção
• Produtividade
![Page 7: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/7.jpg)
O problemaO problema
![Page 8: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/8.jpg)
Necessidades do Necessidades do clientecliente
Necessidades do Necessidades do clientecliente
![Page 9: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/9.jpg)
Tarde demaisTarde demaisTarde demaisTarde demais
![Page 10: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/10.jpg)
![Page 11: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/11.jpg)
A A SoluçãoSoluçãoA A SoluçãoSolução
![Page 12: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/12.jpg)
Caixa Caixa
PretaPretaCaixa Caixa Branca
Branca
Regressão
Regressão Caixa Caixa
CinzaCinza
TDD TDD não énão éTDD TDD não énão é
![Page 13: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/13.jpg)
UnitáriosUnitários FFununcionais
cionais
AceitaçãAceitaçã
oo
TDD TDD não é limitadonão é limitadoTDD TDD não é limitadonão é limitado
……
![Page 14: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/14.jpg)
SOFTWARE SOFTWARE DESIGNDESIGNSOFTWARE SOFTWARE DESIGNDESIGN
![Page 15: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/15.jpg)
TFTFD D TFTFD D
RefatoraçãoRefatoração
![Page 16: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/16.jpg)
Experience is a harsh teacher Experience is a harsh teacher because she gives the test because she gives the test first, the lesson afterward.first, the lesson afterward.
_ _ Provérbio ChinêsProvérbio Chinês
![Page 17: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/17.jpg)
O O resultadoresultado é um reflexo do é um reflexo do que foi que foi solicitadosolicitado
![Page 18: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/18.jpg)
Menos Menos tempotempo gasto com a gasto com a solução de defeitossolução de defeitos
![Page 19: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/19.jpg)
ConfiançaConfiança na qualidade do na qualidade do próprio trabalhopróprio trabalho
![Page 20: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/20.jpg)
Possibilita a Possibilita a propriedade propriedade coletiva coletiva do códigodo código
![Page 21: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/21.jpg)
Desenvolvendo Desenvolvendo incrementalmenteincrementalmente
![Page 22: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/22.jpg)
Nunca se afastando do Nunca se afastando do real real objetivoobjetivo
![Page 23: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/23.jpg)
E o E o resultadoresultado é é
![Page 24: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/24.jpg)
E o E o resultadoresultado é é
?
![Page 25: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/25.jpg)
E o E o resultadoresultado é é
![Page 26: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/26.jpg)
E o E o resultadoresultado é é
![Page 27: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/27.jpg)
![Page 28: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/28.jpg)
Modele
Implemente
Teste
TesteTesteTesteTeste
![Page 29: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/29.jpg)
![Page 30: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/30.jpg)
Modele
TDDTDDTDDTDD
Descubra o que você Descubra o que você realmente quer fazerrealmente quer fazer
![Page 31: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/31.jpg)
Modele
Teste
TDDTDDTDDTDD
Escreva um teste que Escreva um teste que expresse sua expresse sua
modelagemmodelagem. Ele . Ele deverá deverá falharfalhar
![Page 32: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/32.jpg)
Modele
Teste
Implemente
TDDTDDTDDTDD
Escreva o códigoEscreva o código
![Page 33: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/33.jpg)
Modele
Teste
Implemente
TDDTDDTDDTDD
Teste Teste novamente. Teste novamente. Desta vez para Desta vez para
passarpassar
![Page 34: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/34.jpg)
Refatore
Teste
Implemente
TDDTDDTDDTDD
Teste Refatore para Refatore para melhorar a melhorar a
qualidade da qualidade da soluçãosolução
![Page 35: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/35.jpg)
ModelagemModelagemModelagemModelagem
““Quando validado, o template “Olá, $Quando validado, o template “Olá, ${nome} com o valor “Iure” para a variável {nome} com o valor “Iure” para a variável
nome retornará a string “Olá, Iure”nome retornará a string “Olá, Iure”
![Page 36: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/36.jpg)
TesteTesteTesteTeste
![Page 37: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/37.jpg)
FalhaFalhaFalhaFalha
![Page 38: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/38.jpg)
Fazendo o teste Fazendo o teste PassarPassarFazendo o teste Fazendo o teste PassarPassar
![Page 39: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/39.jpg)
Faça Faça falharfalhar novamente novamente Faça Faça falharfalhar novamente novamente
Triangulação com valoresdiferentes
Triangulação com valoresdiferentes
![Page 40: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/40.jpg)
Faça Faça PassarPassar novamente novamente Faça Faça PassarPassar novamente novamente
![Page 41: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/41.jpg)
Faça Faça falharfalhar novamente novamente Faça Faça falharfalhar novamente novamente
Renomeando o titulo do testeRenomeando o titulo do teste
![Page 42: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/42.jpg)
Faça Faça passarpassar novamente novamente Faça Faça passarpassar novamente novamente
Apenas funciona para a variável nomeApenas funciona para a variável nome
![Page 43: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/43.jpg)
Falhar…Falhar…Falhar…Falhar…
![Page 44: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/44.jpg)
Passar…Passar…Passar…Passar…
Refatorar para HashMapRefatorar para HashMap
![Page 45: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/45.jpg)
Não se esqueça de Não se esqueça de RefatorarRefatorar
Não se esqueça de Não se esqueça de RefatorarRefatorar
![Page 46: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/46.jpg)
Não se esqueça de Não se esqueça de RefatorarRefatorar
Não se esqueça de Não se esqueça de RefatorarRefatorar
ResponsabilidadesResponsabilidades
![Page 47: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/47.jpg)
Não se esqueça de Não se esqueça de RefatorarRefatorar
Não se esqueça de Não se esqueça de RefatorarRefatorar
Extract Method
Extract Method
ResponsabilidadesResponsabilidades
![Page 48: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/48.jpg)
Não se esqueça de Não se esqueça de RefatorarRefatorar
Não se esqueça de Não se esqueça de RefatorarRefatorar
Extract Method
Extract Method
Inner lineInner line
ResponsabilidadesResponsabilidades
![Page 49: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/49.jpg)
Não se esqueça de Não se esqueça de RefatorarRefatorar
Não se esqueça de Não se esqueça de RefatorarRefatorar
Extract Method
Extract Method
Inner lineInner line
ResponsabilidadesResponsabilidades
EncapsulamentoEncapsulamento
![Page 50: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/50.jpg)
Não se esqueça de Não se esqueça de RefatorarRefatorar
Não se esqueça de Não se esqueça de RefatorarRefatorar
Extract Method
Extract Method
Inner lineInner line
Extract ClassExtract Class
ResponsabilidadesResponsabilidades
EncapsulamentoEncapsulamento
![Page 51: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/51.jpg)
![Page 52: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/52.jpg)
![Page 53: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/53.jpg)
![Page 54: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/54.jpg)
SpikeSpike
Um jeito de Um jeito de tornar o tornar o
desconhecido desconhecido
conhecidoconhecido
XPXP
Explorando as várias soluçõesExplorando as várias soluções
![Page 55: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/55.jpg)
SpikeSpike
Um jeito de Um jeito de tornar o tornar o
desconhecido desconhecido
conhecidoconhecido
XPXP
AprendaAprenda escrevendo testesescrevendo testes
![Page 56: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/56.jpg)
Spiking RegexSpiking Regex
AprendaAprenda escrevendo testesescrevendo testes
![Page 57: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/57.jpg)
Como escrever testes e os fazer passar
Estratégias para escolha do teste
![Page 58: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/58.jpg)
Detalhes x Visão geral
Solução vai de encontro com o Solução vai de encontro com o que se imaginavaque se imaginava
Estratégia para escolha do teste
![Page 59: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/59.jpg)
Incerto x Familiar
Pegando as frutas mais baixas, Pegando as frutas mais baixas, resultados mais rápidosresultados mais rápidos
Estratégia para escolha do teste
![Page 60: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/60.jpg)
Maior valor x Mais fácil
Mais progresso com menos esforçoMais progresso com menos esforço
Estratégia para escolha do teste
![Page 61: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/61.jpg)
Como escrever testes e os fazer passar
Estratégias para implementação
do teste
![Page 62: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/62.jpg)
Estratégias para implementação do teste
Solução paleativa:
FAKE
Não fique muito tempo no vermelho
![Page 63: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/63.jpg)
Estratégias para implementação do teste
Triangulação
Reduza o espaço da solução
![Page 64: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/64.jpg)
Estratégias para implementação do teste
Implementação óbvia
![Page 65: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/65.jpg)
Como escrever testes e os fazer passar
Princípios importantes a
serem seguidos
![Page 66: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/66.jpg)
Princípios inportantes
Vá para o verde o mais rápido
possível
![Page 67: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/67.jpg)
Princípios inportantes
Vá mais devagar depois de um
erro
![Page 68: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/68.jpg)
Princípios inportantes
Jamais pule a refatoração
![Page 69: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/69.jpg)
Conceitos Essenciais
![Page 70: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/70.jpg)
Conceitos Essenciais
Fixtures correspondem ao
contexto da aplicação
![Page 71: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/71.jpg)
Conceitos Essenciais - Fixtures
Estado de todo o ambiente de
execução
![Page 72: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/72.jpg)
Conceitos Essenciais - Fixtures
Removem duplicação
DRY
![Page 73: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/73.jpg)
Conceitos Essenciais - Fixtures
Removem duplicaçãoDon’t RY
![Page 74: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/74.jpg)
Conceitos Essenciais - Fixtures
Removem duplicação
Don’t Repeat Y
![Page 75: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/75.jpg)
Conceitos Essenciais - Fixtures
Removem duplicação
Don’t Repeat Yourself
![Page 76: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/76.jpg)
Conceitos Essenciais - Fixtures
Removem duplicação
DRYCompreensão
do Código?Compreensão
do Código?
![Page 77: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/77.jpg)
Conceitos Essenciais - Fixtures
Testes com FOCO
Identifique uma floresta por suas árvores
![Page 78: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/78.jpg)
Conceitos Essenciais
Objetos falsos Colaboração / dependência
Pretendem ser o que não são
O cliente não tem idéia
Acabam fazendo mais rápido do que os reais
![Page 79: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/79.jpg)
Conceitos Essenciais
Teste baseado no Estado
![Page 80: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/80.jpg)
Conceitos Essenciais
Teste baseado na interação
Testa a interação entre um
objeto e seus colaboradores
![Page 81: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/81.jpg)
Conceitos Essenciais
Teste baseado na interação
mocksmocks
stubsstubs
fakesfakes
Testa a interação entre um
objeto e seus colaboradores
![Page 82: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/82.jpg)
Conceitos Essenciais
“We lean on interaction-based testing to verify how an object
talks to its collaborators; and we lean on state-based testing to verify
how well theobject listens.”
J. B. Rainsberger, author of JUnit Recipes
![Page 83: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/83.jpg)
Conceitos Essenciais
StubsStubsImplementação mais simples Implementação mais simples
possívelpossível
HARD-CODEDHARD-CODED
![Page 84: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/84.jpg)
Conceitos Essenciais
FakesFakesParecem patos, andam como Parecem patos, andam como patos e soam como patos. patos e soam como patos.
MAS NÃO SAO PATOSMAS NÃO SAO PATOS
![Page 85: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/85.jpg)
Conceitos Essenciais
MocksMocksIncorpora asserções que Incorpora asserções que
verificam colaboração com verificam colaboração com outros objetos outros objetos
![Page 86: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/86.jpg)
Conceitos Essenciais
MocksMocksNormalmente gerados Normalmente gerados
dinamicamente por dinamicamente por frameworks: frameworks: jMockjMock, ,
EashMockEashMock, , FlexMockFlexMock, , MockPPMockPP
![Page 87: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/87.jpg)
Testando em EquipeTestando em Equipe
• Muitos desenvolvedoresMuitos desenvolvedores
• Desenvolvimento Desenvolvimento
DistribuídoDistribuído
• Plataformas diferêntesPlataformas diferêntes
• Uma estratégia de testesUma estratégia de testes
![Page 88: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/88.jpg)
Quem é Quem é responsável ?responsável ?
![Page 89: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/89.jpg)
Responsabilidade da Responsabilidade da EquipeEquipe
• TodosTodos são responsáveis são responsáveis
• Viu um problema, Viu um problema, conserteconserte!!
• O O códigocódigo é de todos é de todos
![Page 90: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/90.jpg)
![Page 92: Introdução a Desenvolvimento Orientado a Testes ( TDD )](https://reader035.vdocuments.com.br/reader035/viewer/2022062303/55799b08d8b42ae72b8b52a5/html5/thumbnails/92.jpg)
BibliografiaBibliografia
blog.briandicroce.comwww.lispcast.com
Introduction to TDD - Kirrily Robert