[MÚSICA] [MÚSICA]
Meu nome é Eduardo Guerra.
Este é o curso de Desenvolvimento Ágil com Java avançado e hoje vamos,
a gente falou aí de banco de dados, né, vamos falar agora de como testar
classes que acessam banco de dados usando aí frameworks chamado DBUnit,
bastante popular aí na comunidade para fazer esse tipo de teste.
Certo, então, o que é que acontece?
É difícil testar classe que acessa banco de dados tá, dá bastante trabalho se
você for fazer isso manualmente, tá, então, por quê?
A primeira coisa é a inicialização do teste.
Se você for fazer a consulta e verificar o resultado, você tem que garantir que o
estado do banco de dados está igual todas as vezes que você começa aquele teste.
Porque por exemplo,
você está verificando uma consulta e tem que retornar três resultados,
e aí se você inserir mais uma linha vão ser quatro, isso vai quebrar o teste.
Então a gente tem que de uma certa forma, garantir estado inicial do banco, tá.
Outra coisa é verificar o conteúdo do banco de dados.
Ou seja, uma operação de inserção, exclusão,
atualização, você tem que verificar se o banco de dados foi
modificado de acordo com aquilo que era o meu objetivo.
Então fazer isso também é complicado,
porque eu tinha que ir lá recuperar minhas informações e fazer tudo isso aí.
Então, o DBUnit, olha me dá licença aqui, eu vou guardar aqui.
Palmas para o DBUnit!
Você que está aí casa, bata palmas para ele também porque ele
facilita bastante esse trabalho para a gente, tá.
Como é que ele faz isso?
Eu vou sair aqui da frente para você ver.
A primeira coisa que você tem que fazer é criar objeto desse JdbcDatabaseTester
e aí você configura aí o seu driver, o e a sua URL de conexão,
a senha com o banco de dados tá, para você poder acessar,
utilizar o DBUnit naquele banco de dados que você quer utilizar para o teste.
Depois a gente vai popular o banco de dados baseado no conteúdo de arquivo.
Então ele tem formato, que eu vou mostrar daqui a pouco, que ele fala assim,
olha, pega o que está nesse HXML e joga ali para o banco de dados.
Então a gente cria esse DataFileloader, a partir dele a gente cria
DataSet e aí a gente manda ele fazer o Setup com aquele DataSet.
Gente vocês não tem ideia como é bom você poder a cada teste,
zerar o banco de dados, né.
Acontece muito, uma má prática, nessa parte de teste,
é quando teste fica dependendo do outro.
Isso banco de dados acaba acontecendo quando você faz
teste que vai lá e exclui alguma coisa.
Depois você faz teste que vai lá e faz uma consulta,
mas aí não considera que você já excluiu.
Então para que a ordem aí não influencie a execução no teste ou a falha de
teste não impacte no outro, é importante você sempre estar inicializando o banco de
dados no começo de cada teste.
E isso aí que a gente viu facilita bastante.
Tá, vou sair de novo.
É e outra coisa muito legal que dá para fazer é que com aquele
mesmo formato de XML, que a gente pode popular o banco,
a gente pode comparar o conteúdo que está uma tabela,
com todos os dados direitinho, com o conteúdo que você definiu arquivo.
Então você cria ali DataSet a partir da tabela do banco,
tá, você cria ali DataSet esperado a partir
do XML e você depois faz essa
comparação ali de uma tabela com a outra.
Pessoal, imagine que você tem por exemplo, ali que fazer update, que altera
várias linhas, você teria que fazer esse teste verificando cada uma dessas linhas.
Olha, com isso daí fica muito fácil de fazer esse tipo de teste.
E aí, só para a gente ver como que é o formato XML que ele
utiliza ele tem esse DataSet e aí ele utiliza ali
uma TAG com o nome da tabela,
né, e cada atributo seria o nome ali de uma coluna,
bem facinho de a gente escrever, né.
Inclusive eu posso ter, mesmo arquivo, dados de várias tabelas diferentes, né,
o que facilita quando eu estou trabalhando com classes que são dependentes e etc.
Certo, então, com isso a gente viu aí como
criar testes para banco de dados, seria uma coisa bem trabalhosa,
mas com o DBUnit fica ó, mamão com açúcar de fazer, certo?
Muito obrigado, até a próxima aula.
[MÚSICA] [MÚSICA]