TESTE DE INTEGRAÇÃO COM           E       JSTRYKER                    @wbotelhos               wbotelhos.com.br
Washington Botelho wbotelhos.com.br   @wbotelhos
TESTE DE INTEGRAÇÃO COM           E       JSTRYKER                    @wbotelhos               wbotelhos.com.br
Por que testar?Para garantir o funcionamento do código.
Quais o tipos comuns de teste?
Quais o tipos comuns de teste?Unidade
Quais o tipos comuns de teste?Unidade                    Manual
Quais o tipos comuns de teste?Unidade                    Manual            Aceitação
Quais o tipos comuns de teste?            IntegraçãoUnidade                    Manual            Aceitação
Teste de integração é  teste de “maxu”.
Teste de integração é  teste de “maxu”.
Eu disse Macho!!!
Acessa diretamente o  banco de dados
Comunicação com o banco
Comunicação com o banco@BeforeClasspublic void beforeClass() {   factory = new AnnotationConfiguration().configure().build...
Comunicação com o banco@BeforeClasspublic void beforeClass() {   factory = new AnnotationConfiguration().configure().build...
Comunicação com o banco@BeforeClasspublic void beforeClass() {   factory = new AnnotationConfiguration().configure().build...
Comunicação com o banco@BeforeClasspublic void beforeClass() {   factory = new AnnotationConfiguration().configure().build...
E os meus preciosos dados?
Bancos específicosRails...
Bancos específicosRails...
hibernate.propertieshibernate.connection.driver_class=com.mysql.jdbc.Driverhibernate.connection.username=roothibernate.con...
Terei que alimentar o banco?
Dump     InsertDelete   Update
Dump               Insert         Restore          XMLDelete             Update
Model x XML               public class Loja {                   private Long id;               	   private String code;   ...
Populando o banco                  a partir do XMLConnection conn = dataSource.getConnection();IDatabaseConnection iConn =...
Rodolfo Lavieiro                   José Ribeiro
JStryker Tools to help automated tests in java.
Subindo a JPA@BeforeClasspublic static void beforeClass() {	 JPAHelper.entityManagerFactory("default");}
Populando o banco erecuperando o EntityManager @Before public void setup() { 	 new DBUnitHelper().cleanInsert(“loja.xml”);...
@Test@Testpublic void deveriaBuscarPorId() {	 assertNotNull("Loja não encontrada!", repository.loadById(1l));}
Fecha a conexão     e limpa o banco@Afterpublic void tearDown() {	 JPAHelper.close();	 new DBUnitHelper().deleteAll(“loja....
Código limpo, simples     e testado.
#greenbar
Dúvidas???
TESTE DE INTEGRAÇÃO COM           E       JSTRYKER                    @wbotelhos               wbotelhos.com.br
Teste de Integracao com DbUnit e JStryker
Upcoming SlideShare
Loading in …5
×

Teste de Integracao com DbUnit e JStryker

4,958 views

Published on

Teste de integração com DbUnit e JStryker.

Published in: Technology, News & Politics
2 Comments
5 Likes
Statistics
Notes
No Downloads
Views
Total views
4,958
On SlideShare
0
From Embeds
0
Number of Embeds
3,091
Actions
Shares
0
Downloads
6
Comments
2
Likes
5
Embeds 0
No embeds

No notes for slide

Teste de Integracao com DbUnit e JStryker

  1. 1. TESTE DE INTEGRAÇÃO COM E JSTRYKER @wbotelhos wbotelhos.com.br
  2. 2. Washington Botelho wbotelhos.com.br @wbotelhos
  3. 3. TESTE DE INTEGRAÇÃO COM E JSTRYKER @wbotelhos wbotelhos.com.br
  4. 4. Por que testar?Para garantir o funcionamento do código.
  5. 5. Quais o tipos comuns de teste?
  6. 6. Quais o tipos comuns de teste?Unidade
  7. 7. Quais o tipos comuns de teste?Unidade Manual
  8. 8. Quais o tipos comuns de teste?Unidade Manual Aceitação
  9. 9. Quais o tipos comuns de teste? IntegraçãoUnidade Manual Aceitação
  10. 10. Teste de integração é teste de “maxu”.
  11. 11. Teste de integração é teste de “maxu”.
  12. 12. Eu disse Macho!!!
  13. 13. Acessa diretamente o banco de dados
  14. 14. Comunicação com o banco
  15. 15. Comunicação com o banco@BeforeClasspublic void beforeClass() { factory = new AnnotationConfiguration().configure().buildSessionFactory(); session = factory.openSession(); transaction = session.getTransaction();}
  16. 16. Comunicação com o banco@BeforeClasspublic void beforeClass() { factory = new AnnotationConfiguration().configure().buildSessionFactory(); session = factory.openSession(); transaction = session.getTransaction();} @Before public void setup() { transaction.begin(); }
  17. 17. Comunicação com o banco@BeforeClasspublic void beforeClass() { factory = new AnnotationConfiguration().configure().buildSessionFactory(); session = factory.openSession(); transaction = session.getTransaction();} @Before public void setup() { transaction.begin(); } @Test public void deveriaBuscarPorId() { assertNotNull("Loja não encontrada!", repository.loadById(1l)); }
  18. 18. Comunicação com o banco@BeforeClasspublic void beforeClass() { factory = new AnnotationConfiguration().configure().buildSessionFactory(); session = factory.openSession(); transaction = session.getTransaction();} @Before @After public void setup() { public void tearDown() { transaction.begin(); transaction.rollback(); } } @Test public void deveriaBuscarPorId() { assertNotNull("Loja não encontrada!", repository.loadById(1l)); }
  19. 19. E os meus preciosos dados?
  20. 20. Bancos específicosRails...
  21. 21. Bancos específicosRails...
  22. 22. hibernate.propertieshibernate.connection.driver_class=com.mysql.jdbc.Driverhibernate.connection.username=roothibernate.connection.password=roothibernate.connection.url=jdbc:mysql://127.0.0.1:3306/wbotelhos_testhibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialecthibernate.hbm2ddl.auto=updatehibernate.validator.apply_to_ddl=true
  23. 23. Terei que alimentar o banco?
  24. 24. Dump InsertDelete Update
  25. 25. Dump Insert Restore XMLDelete Update
  26. 26. Model x XML public class Loja { private Long id; private String code; private String name; }<dataset> <loja id="1" code="adena-001" name="Estação do Ar" /> <loja id="2" code="adena-002" name="Acimaq" /> <loja id="3" code="adena-003" name="Bertek" /></dataset>
  27. 27. Populando o banco a partir do XMLConnection conn = dataSource.getConnection();IDatabaseConnection iConn = new MySqlConnection(conn, conn.getMetaData().getUserName());FlatXmlDataSet xml = new FlatXmlDataSetBuilder().build(new FileInputStream("loja.xml"));DatabaseOperation operation = new InsertIdentityOperation(DatabaseOperation.CLEAN_INSERT);operation.execute(iConn, xml);conn.close();
  28. 28. Rodolfo Lavieiro José Ribeiro
  29. 29. JStryker Tools to help automated tests in java.
  30. 30. Subindo a JPA@BeforeClasspublic static void beforeClass() { JPAHelper.entityManagerFactory("default");}
  31. 31. Populando o banco erecuperando o EntityManager @Before public void setup() { new DBUnitHelper().cleanInsert(“loja.xml”); EntityManager manager = JPAHelper.currentEntityManager(); repository = new LojaBusiness(manager); }
  32. 32. @Test@Testpublic void deveriaBuscarPorId() { assertNotNull("Loja não encontrada!", repository.loadById(1l));}
  33. 33. Fecha a conexão e limpa o banco@Afterpublic void tearDown() { JPAHelper.close(); new DBUnitHelper().deleteAll(“loja.xml”);}
  34. 34. Código limpo, simples e testado.
  35. 35. #greenbar
  36. 36. Dúvidas???
  37. 37. TESTE DE INTEGRAÇÃO COM E JSTRYKER @wbotelhos wbotelhos.com.br

×