[MÚSICA] [MÚSICA] Olá pessoal. Então, nesse hands on eu vou mostrar para vocês como faz o teste com DBUnit. A gente vai testar o mesmo software que a gente fez lá na aula de JDBC. Então, a primeira coisa que eu tenho que fazer é adicionar as dependências do DBUnit, para agilizar eu já deixei preparadinho aqui num diretório, só para a gente copiar aqui. Para lib, certo. E poder estar adicionando todos eles aqui no build pack como a gente fez aqui. Então, está tudo certinho. Eu vou vir aqui agora e vou dar new, JUnit test case. Vou chamar aqui teste usuário DAO. Então, eu vou criar o setUp que eu vou precisar. Vou adicionar o Unit4. Então, o quê que eu vou fazer? Eu tenho que criar objeto aqui do DBUnit que é o JDBC Database tester. Então, Database tester, vou botar esse cara aqui e no setUp eu vou criar ele. Então, eu vou colocar aqui JDT = new, JDBC database tester. Note que ele recebe ali o driver, a URL, o username e o password. Bom, então eu vou copiar aqui o nome do driver. Ele vai usar. E vou copiar daqui do DAO também a URL de conexão aqui com os login e a senha. Então, ele precisa daquilo para poder setar, aquele, as informações. Aqui no JDT eu vou criar aqui, cara que chama FlatXmlDataFileLoader, que é o cara que recupera as informações do arquivo xml. Então, eu vou dar aqui new, flat, DataFileLoader, certo. E aí aqui eu vou fazer o seguinte, JDT ponto set data set. E aí eu vou fazer o loader ponto load e eu vou colocar aqui, vou chamar aqui de, vou colocar barra aqui, início.xml. Aqui, errado. E aí aqui eu boto JDT ponto on setup. Então, eu vou vir aqui para poder criar o xml. Então, eu vou vir aqui na new, file, está dentro ali do source mesmo. E qual o nome que eu dei? Inicio.xml. Então, essa classe é bem simples. Eu vou colocar aqui, vou chamar aqui de Dataset, aqui eu boto barra dataset. E aí, cada linha eu vou colocar aqui usuário, nome e email. Então, todas as informações eu vou colocar aqui. Então, é simplesmente isso aqui o meu coiso. Então, eu vou colocar aqui algumas informações diferentes. Então, o login vai ser João, então, vai ser João Pedro e aqui João @email.com.br. Eu vou colocar aqui Maria. Aqui vai ser Maria Tereza. E aqui vai ser MT @email.com. Então, eu vou salvar aqui. Então, ele vai estar utilizando esse cara para fazer o Para poder fazer o setup aqui. É, eu vou vir aqui, vou criar o meu, o meu teste aqui que vai ser o recuperaTodos. Então, para testar aqui se ele está recuperando todos eu vou chamar ali o meu, vou recuperar aqui a minha list de usuário. Usuário. Não reconheceu a list ainda. É, lista. Vai pegar ali do UsuárioDAO.todosUsuários. Então, eu vou pegar aqui, para a gente ver que ele realmente está carregando, né. Eu vou fazer aqui assert equals 2 com o tamanho da lista, né. Como é que chama a lista? Lista, opa! Lista ponto size. E vou verificar se o primeiro ali realmente se chama João, tá. Então vai ser assert equals de novo, tá. João. Eu vou fazer aqui lista ponto get. Opa. Get 0 ponto get login. Dá para a gente ver que ele realmente está carregando ali. Então, eu vou salvar, e vou rodar esse teste. Vamos ver se vai dar certo. Então, passou, tá. Bom, vamos ver agora como que a gente faria para comparar, lembrando que a cada teste ele vai inicializar o banco com aqueles dados ali. Então, eu vou copiar aqui pouquinho. Então, eu vou chamar aqui de insereNovo, para a gente ver como que a gente compararia os dados que estão numa tabela do banco de dados com os dados que a gente espera. Então, aqui eu criaria novo usuário. Eu vou aproveitar aqui criei aqui, no insert É, vou mandar inserir e aí agora eu vou comparar o conteúdo das tabelas. Então, a primeira coisa que eu tenho que fazer é pegar o Dataset que pega todos os dados. Então, eu vou botar aqui o current dataset. Eu vou chamar aqui o JDT ponto getconnection ponto, create dataset. Então, ele vai criar a partir do que está ali no banco. Então, eu coloco ali o throws. Pode ser só exception. A partir desse dataset eu vou criar a tabela. Então, current table. Eu vou pegar a tabela do dataset. Então, currentDataset.getTable. É, eu vou pegar a tabela usuário. Certo? Agora, o que é que eu vou fazer? Eu vou usar isso aqui mesmo para poder pegar outro dataset. Esse de xml. Então, aqui, eu vou botar aqui iDataSet, expectedDataset, aquele que eu estou esperando. E ele vai carregar ali do, só que aqui não vai ser do início, vai ser de outro arquivo que eu vou chamar de verifica ponto xml. Então, eu vou aqui agora recuperar a tabela. Então, da mesma forma que eu recuperei a tabela do current dataset eu vou ter aqui uma expectedTable e está vindo do expected Dataset. E aí, agora é fazer o assert equals que a gente já conhece com a expectedTable e a currentTable, certo? Então, eu salvo aqui. Está faltando criar o arquivo verifica xml. Então, eu vou vir aqui: new, file, verifica.xml. O que é que eu vou fazer? Eu vou copiar o que está aqui no início e vou acrescentar o usuário ali da Duda. Então, eu vou colocar aqui usuário login. Duda, Maria Eduarda. Então, Duda. Duda@gmail.com. Então, eu vou salvar aqui. E vou rodar aqui o meu teste. Vamos ver se funciona. Então, deu problema. Vamos ver qual foi o problema. Será que eu errei alguma coisa aqui? Ele, acho que ele está dando problema aqui. Será que é no email? Vamos ver se eu coloquei certinho aqui. Duda, Maria Eduarda, Duda@gmail.com. Está certinho. Vamos ver aqui porque é que ele não funcionou. Tá pessoal, desculpe pelo erro. Então, eu fiz uma pausa, dei uma pesquisada. O que estava errado era que estava faltando aqui no assert essa classe assertion. Essa classe assertion que compara é uma classe do DBUnit, aqui. Então, era só isso realmente que faltava para poder rodar o teste e funcionar. Eu esqueci desse pequeno detalhe que tinha que usar a classe dele. Certo? Então, ele roda, ele compara aqui com o arquivo verifica, que tem aqui a Duda no começo. Note que, se eu vir aqui e alterar alguma coisa, quando eu rodar ele vai dar erro, dizendo que falhou por que ele esperava aqui Duda e ele foi DudaE. Então, qualquer diferença entre o que está no xml e o que está no banco de dados ele vai acusar como uma falha no teste. Então, muito obrigado. É isso daí. Desculpe o pequeno erro aí, que eu me enrolei pouquinho. Mas é assim que faz o teste com o banco de dados, o DBUnit. Muito obrigado. [MÚSICA] [MÚSICA]