Através do DbUnit é possível definir e verificar o estado do banco de dados em um dado instante durante o teste. É possível inserir dados e ler dados do banco através de arquivos simples XML.
Para fazer um teste simples, eu segui o tutorial do seguinte site: Marc Philipp. Neste caso temos apenas uma tabela de pessoas com idade, nome e último nome. Essas pessoas podem ser adicionadas e também podem ser buscadas. Para realizar esse tutorial eu usei:
- Netbeans
- Projeto Maven Aplicação Java
- JUnit 4.12
- Hamcrest 1.3
- DbUnit 2.5
- O banco de dados H2
- Spring Data
- Hibernate Core e EntityManager
Criamos depois o repositório. Eu escolhi usar o JpaRepository que cuidada de cada detalhe do acesso aos dados no banco:
Além disso precisamos definir o DataSource e uma EntityManager. Esses são criados através de uma classe de configuração do Spring que define beans para o DataSource e o EntityManager:
Finalmente vamos trabalhar em nossos testes. Queremos conectar com e modificar o banco de dados. Fazemos isso através do repository obtido do contexto gerado pela configuração descrita anteriormente. Vamos inserir no banco os seguintes dados:
Essa é a primeira facilidade que verificamos no DbUnit, poder inserir dados através de um XML muito simples. Depois de inseridos esses dados, vamos testar se foram inseridos corretamente e o que acontece caso se pesquise um nome não inserido:
Podemos observar na linha 42 a leitura do arquivo XML e na linha 49 a inserção dos dados no banco. Já nas linhas 53 e 62 temos os testes de busca pelo objeto que possui o nome Charlie e busca por um objeto inexistente no banco.
É evidente a infinidade de coisas interessante que se pode fazer com essa ferramenta, espero ter ajudado. O projeto completo pode ser clonado através do Git do seguinte repositório: https://leandro_stlima@bitbucket.org/leandro_stlima/dbunit.git.
No próximo post falarei sobre o Mockito, frameworking para Mocking ou maquete, emulação, de objetos em Testes de Unidade.