Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

31
Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch

Transcript of Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

Page 1: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

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.

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.

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.

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.

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.

O framework de testes JUnit

Page 7: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

O framework de testes JUnit

Page 8: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

Integração com o JCreator

Page 9: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

Integração com o JCreator

Page 10: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

Integração com o JCreator

Page 11: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

Integração com o JCreator

Page 12: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

Integração com o JCreator

Page 13: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

Integração com o JCreator

Page 14: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

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.

Exemplo: A classe TestaDado

Page 16: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

Exemplo: Agora escrevo a classe Dado

Page 17: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

Exemplo: O resultado dos testes

Page 18: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

Introduzindo um erro

Page 19: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

Introduzindo um erro

Page 20: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

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.

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.

Integrando a GUI JUnit ao JCreator

Page 23: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

Integrando a GUI JUnit ao JCreator

Page 24: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

Integrando a GUI JUnit ao JCreator

Page 25: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

Integrando a GUI JUnit ao JCreator

Page 26: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

Integrando a GUI JUnit ao JCreator

Page 27: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

Integrando a GUI JUnit ao JCreator

Page 28: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

Integrando a GUI JUnit ao JCreator

Page 29: Desenvolvimento Guiado por Testes Lógica é a arte de errar com confiança Joseph Wood Krutch.

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.

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.

Exercício

Escreva a classe de teste para a classe Calculadora mostrada abaixo: