desenvolvimento guiado por testes lógica é a arte de errar com confiança joseph wood krutch
TRANSCRIPT
![Page 1: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/1.jpg)
Desenvolvimento Guiado por Testes
Lógica é a arte de errar com confiança
Joseph Wood Krutch
![Page 2: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/2.jpg)
O Valor do código que testa a si próprio
• A maior parte do tempo dos programadores é gasta procurando erros de programação no código
• "As classes deveriam testar a si próprias"
• Saída dos testes, geralmente em modo console
"I'm a pretty lazy person and am prepared to work hard in order to avoid work"
Martin Fowler
![Page 3: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/3.jpg)
O Valor do código que testa a si próprio
Dica
Assegure-se de que todos os testes sejam automáticos e de que eles verifiquem seus próprios resultados
![Page 4: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/4.jpg)
O Valor do código que testa a si próprio
• Rode todos os testes freqüentemente (a cada compilação, uma vez por dia...)
• Antigos testes que passam a dar problema, terão sido certamente ocasionados pelo novo código introduzido desde a última vez em que os testes foram executados.
• Quando você tiver de acrescentar uma nova funcionalidade ao software, comece escrevendo os testes (foco na interface, ao invés da implementação)
![Page 5: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/5.jpg)
O framework de testes JUnit
• Desenvolvido por Erich Gamma e Kent Beck
• Disponível para download em http://www.junit.org
• Instalação:
1. Descompacte o arquivo junit3.8.1.zip
2. Acrescente o arquivo junit.jar à variável de ambiente CLASSPATH.Exemplo: set classpath=%classpath%;C:\junit3.8.1\junit.jar
![Page 6: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/6.jpg)
O framework de testes JUnit
![Page 7: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/7.jpg)
O framework de testes JUnit
![Page 8: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/8.jpg)
Integração com o JCreator
![Page 9: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/9.jpg)
Integração com o JCreator
![Page 10: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/10.jpg)
Integração com o JCreator
![Page 11: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/11.jpg)
Integração com o JCreator
![Page 12: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/12.jpg)
Integração com o JCreator
![Page 13: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/13.jpg)
Integração com o JCreator
![Page 14: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/14.jpg)
Um Exemplo: A classe Dado
Construir uma classe de Teste para a classe Dado
![Page 15: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/15.jpg)
Exemplo: A classe TestaDado
![Page 16: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/16.jpg)
Exemplo: Agora escrevo a classe Dado
![Page 17: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/17.jpg)
Exemplo: O resultado dos testes
![Page 18: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/18.jpg)
Introduzindo um erro
![Page 19: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/19.jpg)
Introduzindo um erro
![Page 20: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/20.jpg)
Exemplo: Uma forma alternativa
Todos os métodos iniciados por test são automaticamente incluídos no conjunto de testes
![Page 21: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/21.jpg)
Rodando JUnit em uma interface gráfica
![Page 22: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/22.jpg)
Integrando a GUI JUnit ao JCreator
![Page 23: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/23.jpg)
Integrando a GUI JUnit ao JCreator
![Page 24: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/24.jpg)
Integrando a GUI JUnit ao JCreator
![Page 25: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/25.jpg)
Integrando a GUI JUnit ao JCreator
![Page 26: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/26.jpg)
Integrando a GUI JUnit ao JCreator
![Page 27: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/27.jpg)
Integrando a GUI JUnit ao JCreator
![Page 28: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/28.jpg)
Integrando a GUI JUnit ao JCreator
![Page 29: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/29.jpg)
Os métodos Assert
http://junit.sourceforge.net/javadoc/junit/framework/Assert.html
![Page 30: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/30.jpg)
Tips
• É melhor escrever e rodar testes incompletos do que não rodar testes completos.
• Não se esqueça de testar se as exceções são lançadas quando ocorrem os erros esperados.
• Não deixe que o receio de que os testes não possam capturar todos os erros o impeça de escrever os testes que irão capturar a maioria dos erros
![Page 31: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc10a497959413d8c0aa8/html5/thumbnails/31.jpg)
Exercício
Escreva a classe de teste para a classe Calculadora mostrada abaixo: