23
Testes de Integração André Faria http://www.flickr.com/photos/jacques_daigneault/3100967998/sizes/o/

Testes de Integração

Embed Size (px)

DESCRIPTION

Palestra sobre Testes de Integração apresentada na Bluesoft em 2009

Citation preview

Page 1: Testes de Integração

Testes de Integração

André Faria

http://www.flickr.com/photos/jacques_daigneault/3100967998/sizes/o/

Page 2: Testes de Integração

O que os testes

unitários não

resolvem?

http://www.flickr.com/photos/cuppini/3211910657/

Page 3: Testes de Integração

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

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

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

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

Como o Spring pode te Ajudar com isso?

Page 8: Testes de Integração

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

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

Alta PerformanceMédia de 100 à 1000

testes por minuto

http://www.flickr.com/photos/stephenpoff/2913508009/sizes/l/

Page 11: Testes de Integração

Teste Triggers, Sequences,

Store Procedures, Código JDBC, etc.

http://www.flickr.com/photos/soldiersmediacenter/4097699857/sizes/l/

Page 12: Testes de Integração

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

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

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

Na Prática

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = { "/applicationContext-resources-test.xml" })

@TransactionConfiguration(defaultRollback = true)

Page 16: Testes de Integração

“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

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

+ Annotations @BeforeTransaction

@Before@Test

@After@AfterTransaction

@NotTransactional@Rollback(false)

http://www.flickr.com/photos/heypaul/107326157/sizes/l/

Page 19: Testes de Integração

Entenda os diferentes tipos de testes e seus objetivos

Page 20: Testes de Integração

Testes Unitários e Testes de Integração não são exclusivos

Page 21: Testes de Integração

Pirâmide de Testes

Aceitação

Integração

Unitários

Page 22: Testes de Integração

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

OBRIGADO