Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Treinamento Testes Unitários - parte 2

1,814 views

Published on

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

Published in: Technology, Education
  • Be the first to comment

Treinamento Testes Unitários - parte 2

  1. 2. Testes Unitários Setembro/2009 Para Desenvolvedores Parte II Diego Pacheco Arquiteto de Software http://diego-pacheco.blogspot.com http://www.twitter.com/diego_pacheco
  2. 3. Agenda <ul><li>Vídeo </li></ul><ul><li>Revisão </li></ul><ul><ul><li>Spring </li></ul></ul><ul><ul><li>Mockito </li></ul></ul><ul><li>Novas Duplas </li></ul><ul><li>Timer </li></ul><ul><li>Revisão de código </li></ul><ul><li>Competição </li></ul><ul><li>Happy Hour </li></ul><ul><li>Hands on: Exercícios </li></ul>
  3. 4. É fácil testar?
  4. 5. TestNG <ul><li>Framework de teste unitário para Java; </li></ul><ul><li>Utiliza anotações; </li></ul><ul><li>Integração com Eclipse e Maven 2; </li></ul><ul><li>Grupos de Testes ; </li></ul><ul><li>Possui Integração com Spring Framework; </li></ul><ul><li>Relatório de resultado em HTML; </li></ul><ul><li>Fácil de usar e com boa documentação. </li></ul>
  5. 6. TestNG <ul><li>Integração com Spring Framework: </li></ul><ul><ul><li>Criar classe de testes que estenda a classe AbstractTestNGSpringContextTests do Spring Framework . </li></ul></ul><ul><ul><li>Adicionar a anotação @ContextConfiguration( locations={ &quot;/spring-test-beans.xml&quot; } )   e apontar para onde está o arquivo de configurações do Spring Framework. </li></ul></ul><ul><ul><li>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. </li></ul></ul>
  6. 7. TestNG Arquivo típico de beans do Spring
  7. 8. Mocks <ul><li>Framework de mock para Java </li></ul><ul><li>DSL Fluente </li></ul><ul><ul><li>mock </li></ul></ul><ul><ul><li>when </li></ul></ul><ul><ul><li>thenReturn </li></ul></ul><ul><ul><li>doThrow </li></ul></ul><ul><li>Simples e Fácil </li></ul>
  8. 9. Mocks Exemplo prático
  9. 10. Novas Duplas
  10. 11. Novas Duplas pair- aye-aye pair -tarsier pair- proboscis-monkey pair- axolotl
  11. 12. Timer !!!
  12. 13. 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.
  13. 14. Hands on: Exercicios <ul><li>Instalar o Eclipse do Instrutor; </li></ul><ul><li>Instalar e configurar o Maven 2 ; </li></ul><ul><li>Fazer checkout do repositório da máquina do instrutor; </li></ul><ul><li>Criar Testes unitários utilizando só TestNG; </li></ul><ul><li>Modificar os testes para adicionar suporte ao Spring; </li></ul><ul><li>Modificar os testes para adicionar suporte ao Mockito. </li></ul>
  14. 15. Hands on: Exercicios <ul><li>Testes que devem ser criados: </li></ul><ul><li>Testes unitários para o serviço de vendas. </li></ul><ul><ul><li>Testar Parâmetros inválidos e nulos. </li></ul></ul><ul><ul><li>Testar se o comissionamento (RN002) e a baixa de estoque (RN003) estão corretos. </li></ul></ul><ul><ul><li>Testar o método estornar() </li></ul></ul>Regras de Negocio
  15. 16. <ul><li>Revisar o que foi implementado </li></ul><ul><li>Revisar o código de testes </li></ul><ul><li>Revisar a necessidade de testes </li></ul>Revisão de código
  16. 17. i legra Speed Test Champ Unit Test Champ Seja o Usain Bolt dos testes unitários !
  17. 18. Happy Hour !!! Criatividade TDD Comprometimento Testes unitários Capacidade Técnica Integração Contínua Amigáve l Mocks/TestNG
  18. 19. Dúvidas?
  19. 20. Referências <ul><li>Livros: </li></ul><ul><ul><li>Prentice Hall PTR 2005 - Agile Java Crafting Code with Test-Driven Development - Jeff Langr </li></ul></ul><ul><ul><li>Addison Wesley 2006 - Agility and Discipline made easy - Practices from OpenUP and RUP - Per Krol </li></ul></ul><ul><ul><li>John Wiley & Sons 2007 - Pragmatic Software Testing: Becoming an Effective and Efficient Test Professional - Rex Black </li></ul></ul><ul><ul><li>Visual Books 2008 – Testes Funcionais de Software – Leonardo Molinari </li></ul></ul><ul><ul><li>Manning 2007 - Test Driven TDD and Acceptance TDD for Java Developers - Lasse K oskela </li></ul></ul><ul><ul><li>Addison Wesley 2002 - Test-Driven Development By Example - Kent Beck </li></ul></ul><ul><li>Sites/Blogs: </li></ul><ul><ul><li>http://diego-pacheco.blogspot.com/search/label/testes </li></ul></ul><ul><ul><li>http://www.testexpert.com.br/ </li></ul></ul><ul><ul><li>http://diariodaqualidade.blogspot.com/ </li></ul></ul><ul><ul><li>https://hudson.dev.java.net/ </li></ul></ul><ul><ul><li>http://en.wikipedia.org/wiki/Test-driven_development </li></ul></ul><ul><ul><li>http://www.agiledata.org/essays/tdd.html </li></ul></ul><ul><ul><li>http://testng.org/doc/index.html </li></ul></ul><ul><ul><li>http://googletesting.blogspot.com/ </li></ul></ul><ul><ul><li>http://testobsessed.com/ </li></ul></ul><ul><ul><li>http://www.wthreex.com/rup/process/modguide/md_untst.htm </li></ul></ul><ul><ul><li>http://www.infoq.com/testing/ </li></ul></ul><ul><ul><li>http://mockito.org/ </li></ul></ul>
  20. 21. Twitter Siga a i legra no twitter http://www.twitter.com/ilegra

×