teste de integracao com dbunit e jstryker

38
TESTE DE INTEGRAÇÃO COM @wbotelhos wbotelhos.com.br E JSTRYKER

Upload: washington-botelho

Post on 09-Jul-2015

4.606 views

Category:

Technology


3 download

DESCRIPTION

Teste de integração com DbUnit e JStryker.

TRANSCRIPT

TESTE DE INTEGRAÇÃO COM

@wbotelhoswbotelhos.com.br

E

JSTRYKER

Washington Botelho

wbotelhos.com.br

@wbotelhos

TESTE DE INTEGRAÇÃO COM

@wbotelhoswbotelhos.com.br

E

JSTRYKER

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

Aceitação

Manual

Quais o tipos comuns de teste?

Unidade

Aceitação

Manual

Integração

Teste de integração éteste de “maxu”.

Teste de integração éteste de “maxu”.

Eu disse Macho!!!

Acessa diretamente obanco de dados

Comunicação com o banco

Comunicação com o banco@BeforeClasspublic void beforeClass() {

factory = new AnnotationConfiguration().configure().buildSessionFactory();session = factory.openSession();

transaction = session.getTransaction();}

Comunicação com o banco@BeforeClasspublic void beforeClass() {

factory = new AnnotationConfiguration().configure().buildSessionFactory();session = factory.openSession();

transaction = session.getTransaction();}

@Beforepublic void setup() { transaction.begin();}

Comunicação com o banco@BeforeClasspublic void beforeClass() {

factory = new AnnotationConfiguration().configure().buildSessionFactory();session = factory.openSession();

transaction = session.getTransaction();}

@Beforepublic void setup() { transaction.begin();}

@Testpublic void deveriaBuscarPorId() { assertNotNull("Loja não encontrada!", repository.loadById(1l));}

Comunicação com o banco@BeforeClasspublic void beforeClass() {

factory = new AnnotationConfiguration().configure().buildSessionFactory();session = factory.openSession();

transaction = session.getTransaction();}

@Beforepublic void setup() { transaction.begin();}

@Testpublic void deveriaBuscarPorId() { assertNotNull("Loja não encontrada!", repository.loadById(1l));}

@Afterpublic void tearDown() { transaction.rollback();}

E os meus preciosos dados?

Bancos específicos

Rails...

Bancos específicos

Rails...

hibernate.properties

hibernate.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

Terei que alimentar o banco?

Dump Insert

Delete Update

Dump Insert

Delete Update

Restore

XML

<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>

public class Loja {

private Long id; private String code; private String name;}

Model x XML

Populando o bancoa partir do XML

Connection 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();

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

@Beforepublic void setup() { new DBUnitHelper().cleanInsert(“loja.xml”);

EntityManager manager = JPAHelper.currentEntityManager(); repository = new LojaBusiness(manager);}

@Test

@Testpublic void deveriaBuscarPorId() { assertNotNull("Loja não encontrada!", repository.loadById(1l));}

Fecha a conexãoe limpa o banco

@Afterpublic void tearDown() { JPAHelper.close(); new DBUnitHelper().deleteAll(“loja.xml”);}

Código limpo, simples e testado.

#greenbar

Dúvidas???

TESTE DE INTEGRAÇÃO COM

@wbotelhoswbotelhos.com.br

E

JSTRYKER