Download - Testes de Integração
![Page 1: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/1.jpg)
Testes de Integração
André Faria
http://www.flickr.com/photos/jacques_daigneault/3100967998/sizes/o/
![Page 2: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/2.jpg)
O que os testes
unitários não
resolvem?
http://www.flickr.com/photos/cuppini/3211910657/
![Page 3: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/3.jpg)
O que testar ?
Service LayerDomain Objects
AspectsWeb Tier CodeSQL Queries
Interation with JEE APIs
http://www.flickr.com/photos/14646075@N03/3498450536/sizes/o/
![Page 4: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/4.jpg)
http://www.flickr.com/photos/14646075@N03/3498450536/sizes/o/
Non-Java Code Store Procedures / Scripts
Database SchemaViews, Triggers
Spring and Other ConfigurationsXML, Properties
O/R MappingJSPs and Other Views
![Page 5: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/5.jpg)
Testando Código de Persistência
O que não testar? Connections Leaks
Use Spring JDBC, JPA, etc...
O que testar?SQL, HQL, JP QL
Testes LocalizadosDAO interface layer
http://www.flickr.com/photos/sveinhal/2729087260/sizes/l/
![Page 6: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/6.jpg)
Teste sem depender do servidor
+ rápido Mesmo do que Tomcat ou Jetty
Fácil de debugar
Possibilidade de rodar testes individualmente
Rode de sua IDE ou Build Script
http://www.flickr.com/photos/colorblindpicaso/3399410617/sizes/o/
![Page 7: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/7.jpg)
Como o Spring pode te Ajudar com isso?
![Page 8: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/8.jpg)
Spring Integration TestingO pacote org.springframework.test(spring-mock.jar)
JUnit Superclasses
Spring Context Loading e CachingInjeção de Dependências
http://www.flickr.com/photos/dm-set/3846819118/sizes/l/
![Page 9: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/9.jpg)
Data Access e Transaction Management(Criação e Rollback Automático, você não
precisar escrever isso no setup e teardown)
http://www.flickr.com/photos/vgm8383/4061536522/sizes/l/
![Page 10: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/10.jpg)
Alta PerformanceMédia de 100 à 1000
testes por minuto
http://www.flickr.com/photos/stephenpoff/2913508009/sizes/l/
![Page 11: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/11.jpg)
Teste Triggers, Sequences,
Store Procedures, Código JDBC, etc.
http://www.flickr.com/photos/soldiersmediacenter/4097699857/sizes/l/
![Page 12: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/12.jpg)
Context Cachingbetween many Test Cases
Importante quando se usa Hibernate devido ao alto
custo da criação da Session Factory
![Page 13: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/13.jpg)
Você não precisa alterar absolutamente nada nos seus objetos DAO
entre os testes e a entrega
http://www.flickr.com/photos/jamimages/121750129/sizes/l/
![Page 14: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/14.jpg)
Arquivo de Configuração do Spring específico para Testes para
configurar Recursos como Banco de Dados
por exemplo
http://www.flickr.com/photos/libraryman/95516793/
![Page 15: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/15.jpg)
Na Prática
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/applicationContext-resources-test.xml" })
@TransactionConfiguration(defaultRollback = true)
![Page 16: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/16.jpg)
“Nos Testes de Integração sempre que possível prefira
usar o banco de dados real ao invés
de abordagens baseadas em Java
DB ou HSQL DB”
http://www.flickr.com/photos/gavinbell/35378445/sizes/o/
![Page 17: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/17.jpg)
Annotations@Timed(mills=1000)
@Repeat(5)
@ExpectedException(Exception.class)
@DirtiesContext //Rebuild the Context after the test
http://www.flickr.com/photos/heypaul/107326157/sizes/l/
![Page 18: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/18.jpg)
+ Annotations @BeforeTransaction
@Before@Test
@After@AfterTransaction
@NotTransactional@Rollback(false)
http://www.flickr.com/photos/heypaul/107326157/sizes/l/
![Page 19: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/19.jpg)
Entenda os diferentes tipos de testes e seus objetivos
![Page 20: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/20.jpg)
Testes Unitários e Testes de Integração não são exclusivos
![Page 21: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/21.jpg)
Pirâmide de Testes
Aceitação
Integração
Unitários
![Page 22: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/22.jpg)
Aprofunde-se
Palestra do Rod Johnson no No Fluff Just Stuff Symposiums em 2007http://www.infoq.com/presentations/system-integration-testing-with-spring
![Page 23: Testes de Integração](https://reader031.vdocuments.com.br/reader031/viewer/2022020122/54bd62294a7959f3178b4622/html5/thumbnails/23.jpg)
OBRIGADO