Teste de Integracao com DbUnit e JStryker

  • 4,501 views
Uploaded on

Teste de integração com DbUnit e JStryker.

Teste de integração com DbUnit e JStryker.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
4,501
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
4
Comments
2
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. TESTE DE INTEGRAÇÃO COM E JSTRYKER @wbotelhos wbotelhos.com.br
  • 2. Washington Botelho wbotelhos.com.br @wbotelhos
  • 3. TESTE DE INTEGRAÇÃO COM E JSTRYKER @wbotelhos wbotelhos.com.br
  • 4. Por que testar?Para garantir o funcionamento do código.
  • 5. Quais o tipos comuns de teste?
  • 6. Quais o tipos comuns de teste?Unidade
  • 7. Quais o tipos comuns de teste?Unidade Manual
  • 8. Quais o tipos comuns de teste?Unidade Manual Aceitação
  • 9. Quais o tipos comuns de teste? IntegraçãoUnidade Manual Aceitação
  • 10. Teste de integração é teste de “maxu”.
  • 11. Teste de integração é teste de “maxu”.
  • 12. Eu disse Macho!!!
  • 13. Acessa diretamente o banco de dados
  • 14. Comunicação com o banco
  • 15. Comunicação com o banco@BeforeClasspublic void beforeClass() { factory = new AnnotationConfiguration().configure().buildSessionFactory(); session = factory.openSession(); transaction = session.getTransaction();}
  • 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. 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. 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. E os meus preciosos dados?
  • 20. Bancos específicosRails...
  • 21. Bancos específicosRails...
  • 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. Terei que alimentar o banco?
  • 24. Dump InsertDelete Update
  • 25. Dump Insert Restore XMLDelete Update
  • 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. 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. Rodolfo Lavieiro José Ribeiro
  • 29. JStryker Tools to help automated tests in java.
  • 30. Subindo a JPA@BeforeClasspublic static void beforeClass() { JPAHelper.entityManagerFactory("default");}
  • 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. @Test@Testpublic void deveriaBuscarPorId() { assertNotNull("Loja não encontrada!", repository.loadById(1l));}
  • 33. Fecha a conexão e limpa o banco@Afterpublic void tearDown() { JPAHelper.close(); new DBUnitHelper().deleteAll(“loja.xml”);}
  • 34. Código limpo, simples e testado.
  • 35. #greenbar
  • 36. Dúvidas???
  • 37. TESTE DE INTEGRAÇÃO COM E JSTRYKER @wbotelhos wbotelhos.com.br