Olá Pessoal,
Hoje veremos como deixar nossos testes com DBUnit usando o HSQLDB. O motivo que queremos rodar o banco em memoria, ou seja, evitarmos de termos que ter o banco rodando para executar os testes, o mesmo será iniciado somente quando os testes forem executado. Como você pode observar no último post, sempre temos que ter o MySql rodando para que as coisas funcionem e ter essa dependência no dia-dia enquano estamos desenvolvendo é ruim, pois vamos exigir que cada desenvolvedor tenha que ter o MySql instalado na maquina etc. Não queremos isso. Queremos que ele faça o checkout do código e possa rodar.
Lets go…
Starting…
Como já falado no post anterior vimos como automatizar nossos testes usando DBUnit + Mysql, porém o que vimos de ruim é o fato de ter sempre o serviço do MySql rodando. E se quisermos rodar isso em memoria, como fazer? O HSQLDB nos dá uma mãozinha para rodar nossos testes com o HSQLDB, é muito simples, basta alterarmos o hibernate.cfg.xml e ter o .jar do HSQLDB adicionado ao projeto.
Vou considerar que você tem o projeto anterior, mas caso não tenha, siga os passos do primeiro post e mude apenas o arquivo do hibernate.cfg.xml.
1. O primeiro passo é criar o arquivo hibernate.cfg.xml com as configurações do banco onde os testes serão executados.
<hibernate-configuration>
<session-factory>
<property name=“hibernate.connection.driver_class”>org.hsqldb.jdbcDriver</property>
<property name=“hibernate.connection.url”>jdbc:hsqldb:mem:db</property>
<property name=“hibernate.connection.username”>sa</property>
<property name=“hibernate.dialect”>org.hibernate.dialect.HSQLDialect</property>
<property name=“hibernate.show_sql”>true</property>
</session-factory>
</hibernate-configuration>
Pronto, feito isso basta rodar os testes novamente e done. O resultado é Green . Simples, não? Assim tiramos a dependência do MySql.
Vou ficando por aqui… Essa foi fácil.
Abraços, see ya!!