22

Treinamento Testes Unitários - parte 2

Embed Size (px)

DESCRIPTION

Treinamento de Testes Unitários, Integração Contínua com Hudson, Maven 2, Spring, Mockito e TDD na ilegra em 2009

Citation preview

Page 1: Treinamento Testes Unitários - parte 2
Page 2: Treinamento Testes Unitários - parte 2

Testes Unitários

Setembro/2009

Para DesenvolvedoresParte II

Diego Pacheco

Arquiteto de Softwarehttp://diego-pacheco.blogspot.com

http://www.twitter.com/diego_pacheco

Page 3: Treinamento Testes Unitários - parte 2

Agenda

•Vídeo

•Revisão

•Spring

•Mockito

•Novas Duplas

•Timer

•Revisão de código

•Competição

•Happy Hour

•Hands on: Exercícios

Page 4: Treinamento Testes Unitários - parte 2

É fácil testar?

Page 5: Treinamento Testes Unitários - parte 2

TestNG

• Framework de teste unitário para Java;

• Utiliza anotações;

• Integração com Eclipse e Maven 2;

• Grupos de Testes ;

• Possui Integração com Spring Framework;

• Relatório de resultado em HTML;

• Fácil de usar e com boa documentação.

Page 6: Treinamento Testes Unitários - parte 2

TestNG

•Integração com Spring Framework:

•Criar classe de testes que estenda a classe AbstractTestNGSpringContextTests do Spring Framework.

•Adicionar a anotação @ContextConfiguration(locations={"/spring-test-beans.xml"})  e apontar para onde está o arquivo de configurações do Spring Framework.

• Injetar serviços com anotações. Ex.: @Autowired e @Test(enabled=false) para que o método setter de injeção não seja testado.

Page 7: Treinamento Testes Unitários - parte 2

TestNG

Arquivo típico de beans do Spring

Page 8: Treinamento Testes Unitários - parte 2

Mocks

• Framework de mock para Java

• DSL Fluente

•mock

•when

•thenReturn

•doThrow

• Simples e Fácil

Page 9: Treinamento Testes Unitários - parte 2

Mocks

Exemplo prático

Page 10: Treinamento Testes Unitários - parte 2

Novas Duplas

Page 11: Treinamento Testes Unitários - parte 2

Novas Duplas

pair-aye-aye

pair-tarsier

pair-proboscis-monkey

pair-axolotl

Page 12: Treinamento Testes Unitários - parte 2

Timer !!!

Page 13: Treinamento Testes Unitários - parte 2

Hands on: Exercicios

Todos os exercicios deverão ser feitos utilizando integração contínua(Hudson) , Controle de versão(SVN) e o método TDD. O Commit só deverá ser realizado após os testes construído e executado sem nenhum erro.

Page 14: Treinamento Testes Unitários - parte 2

Hands on: Exercicios

1. Instalar o Eclipse do Instrutor;

2. Instalar e configurar o Maven 2 ;

3. Fazer checkout do repositório da máquina do instrutor;

4. Criar Testes unitários utilizando só TestNG;

5. Modificar os testes para adicionar suporte ao Spring;

6. Modificar os testes para adicionar suporte ao Mockito.

Page 15: Treinamento Testes Unitários - parte 2

Hands on: Exercicios

Testes que devem ser criados:

Testes unitários para o serviço de vendas.

a) Testar Parâmetros inválidos e nulos.

b) Testar se o comissionamento (RN002) e a baixa de estoque (RN003) estão corretos.

c) Testar o método estornar()

Regras de Negocio

Page 16: Treinamento Testes Unitários - parte 2

• Revisar o que foi implementado• Revisar o código de testes• Revisar a necessidade de testes

Revisão de código

Page 17: Treinamento Testes Unitários - parte 2

ilegra Speed Test Champ

Unit Test Champ

Seja o Usain Bolt dos testes unitários!

Page 18: Treinamento Testes Unitários - parte 2

Happy Hour !!!

Criatividade

TDD Comprometimento

Testes unitários

Capacidade Técnica

Integração Contínua

Amigável

Mocks/TestNG

Page 19: Treinamento Testes Unitários - parte 2

Dúvidas?

Page 20: Treinamento Testes Unitários - parte 2

Referências

•Livros:

•Prentice Hall PTR 2005 - Agile Java Crafting Code with Test-Driven Development - Jeff Langr

• Addison Wesley 2006 - Agility and Discipline made easy - Practices from OpenUP and RUP - Per Krol

•John Wiley & Sons 2007 - Pragmatic Software Testing: Becoming an Effective and Efficient Test Professional - Rex Black

•Visual Books 2008 – Testes Funcionais de Software – Leonardo Molinari

•Manning 2007 - Test Driven TDD and Acceptance TDD for Java Developers - Lasse Koskela

•Addison Wesley 2002 - Test-Driven Development By Example - Kent Beck

•Sites/Blogs:

•http://diego-pacheco.blogspot.com/search/label/testes

•http://www.testexpert.com.br/

•http://diariodaqualidade.blogspot.com/

•https://hudson.dev.java.net/

•http://en.wikipedia.org/wiki/Test-driven_development

•http://www.agiledata.org/essays/tdd.html

•http://testng.org/doc/index.html

•http://googletesting.blogspot.com/

•http://testobsessed.com/

•http://www.wthreex.com/rup/process/modguide/md_untst.htm

•http://www.infoq.com/testing/

•http://mockito.org/

Page 21: Treinamento Testes Unitários - parte 2

Twitter

Siga a ilegra no twitterhttp://www.twitter.com/ilegra

Page 22: Treinamento Testes Unitários - parte 2