SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
Testes efetivos
com DBUnit
José Carlos
Testes efetivos
com DBUnit
José Carlos
Roteiro
●
●
●
●
●
●

Surgimento
Características
Motivação
Exemplo da importância
Show me the code!
Créditos
Surgimento
● DBUnit foi criado em
2002 por Manuel
Laflamme
Características
● Testes isolados para cada cenário
● Controle de dependências externas
● Extensão do JUnit
Características
● Possibilita rodar testes sem alterar o
estado do banco pré-teste.
DataBasetestCase
Estado Pré-Teste
getSetUpOperation()

Isolameto cenário
RunTime

Conclusão
getTearDownOperation()
Motivação
● Framework simples, mas de suma
importância para automatização.
● Mocks para simular o estado dos dados
em banco pode não ser efetivo.
● Reduz o esforço do desenvolvedor em
criar estado de um banco de dados na
mão.
Exemplo da importância
● Determinada feature que engloba
também criação de um parâmetro no
banco de dados.
● Desenvolvedor não fez o script que cria o
parâmetro no banco.
Exemplo da importância
@Test
public void deveCarregarParametroX() {
.
.
.
when(parametroService.carregarPor(id)).thenReturn(parametro);
.
assertEquals(descricao, parametro.getDescricao());
.
}
Exemplo da importância
● Desenvolvedor não validou se o
parâmetro existia no banco de dados.

O que à ausência desse
paramêtro pode provocar?
BUG!
Exemplo da importância
● Equipe de QA vai ser responsável por
descobrir esse bug.
● Importância teste de integração com
DBUnit.
Show me the code!
Créditos
●

http://www.dbunit.org/

●

http://dbunit.wikidot.com/

●

http://dbunit.sourceforge.net/howto.html

●

http://springtestdbunit.github.io/spring-test-dbunit/

●

http://www.onjava.com/pub/a/onjava/2004/01/21/dbunit.html
Obrigado!
Roteiro
●
●
●
●
●
●

Surgimento
Características
Motivação
Exemplo da importância
Show me the code!
Créditos
Surgimento
● DBUnit foi criado em
2002 por Manuel
Laflamme
Características
● Testes isolados para cada cenário
● Controle de dependências externas
● Extensão do JUnit
Características
● Possibilita rodar testes sem alterar o
estado do banco pré-teste.
DataBasetestCase
Estado Pré-Teste
getSetUpOperation()

Isolameto cenário
RunTime

Conclusão
getTearDownOperation()
Motivação
● Framework simples, mas de suma
importância para automatização.
● Mocks para simular o estado dos dados
em banco pode não ser efetivo.
● Reduz o esforço do desenvolvedor em
criar estado de um banco de dados na
mão.
Exemplo da importância
● Determinada feature que engloba
também criação de um parâmetro no
banco de dados.
● Desenvolvedor não fez o script que cria o
parâmetro no banco.
Exemplo da importância
@Test
public void deveCarregarParametroX() {
.
.
.
when(parametroService.carregarPor(id)).thenReturn(parametro);
.
assertEquals(descricao, parametro.getDescricao());
.
}
Exemplo da importância
● Desenvolvedor não validou se o
parâmetro existia no banco de dados.

O que à ausência desse
paramêtro pode provocar?
BUG!
Exemplo da importância
● Equipe de QA vai ser responsável por
descobrir esse bug.
● Importância teste de integração com
DBUnit.
Show me the code!
Créditos
●

http://www.dbunit.org/

●

http://dbunit.wikidot.com/

●

http://dbunit.sourceforge.net/howto.html

●

http://springtestdbunit.github.io/spring-test-dbunit/

●

http://www.onjava.com/pub/a/onjava/2004/01/21/dbunit.html
Obrigado!

Contenu connexe

Similaire à Testes efetivos com DBUnit

Nem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkNem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkRodrigo Matola
 
Webinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosWebinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosEmbarcados
 
AutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic AcademyAutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic AcademyFausto Siqueira
 
Staging liferay portal 6.2
Staging liferay portal 6.2Staging liferay portal 6.2
Staging liferay portal 6.2Paulo Fernandes
 
JSR 352 - Processamento Batch na Plataforma Java - JustJava 2013
JSR 352 - Processamento Batch na Plataforma Java - JustJava 2013JSR 352 - Processamento Batch na Plataforma Java - JustJava 2013
JSR 352 - Processamento Batch na Plataforma Java - JustJava 2013Danival Calegari
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junitcejug
 
Análise de Performance do MySQL e MariaDB
Análise de Performance do MySQL e MariaDBAnálise de Performance do MySQL e MariaDB
Análise de Performance do MySQL e MariaDBSaveincloud
 
Testes de escalabilidade usando cloud
Testes de escalabilidade usando cloudTestes de escalabilidade usando cloud
Testes de escalabilidade usando cloudPET Computação
 
Gerenciamento de Configurações - Puppet
Gerenciamento de Configurações - PuppetGerenciamento de Configurações - Puppet
Gerenciamento de Configurações - PuppetRoberto Scudeller
 
Apache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSFApache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSFBruno Borges
 
Framework de testes cecom
Framework de testes cecomFramework de testes cecom
Framework de testes cecomlucasbarsand
 
Android DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimentoAndroid DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimentoiMasters
 
Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?Wellington Moreira
 
Continuous Building usando TeamCity
Continuous Building usando TeamCityContinuous Building usando TeamCity
Continuous Building usando TeamCityAndré Minelli
 
Google AppEngine: Desafios da adoção de cloud no mercado de seguros
Google AppEngine: Desafios da adoção de cloud no mercado de segurosGoogle AppEngine: Desafios da adoção de cloud no mercado de seguros
Google AppEngine: Desafios da adoção de cloud no mercado de segurosGustavo Concon
 

Similaire à Testes efetivos com DBUnit (20)

Power mock
Power mockPower mock
Power mock
 
JSF & REST
JSF & RESTJSF & REST
JSF & REST
 
Nem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkNem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot Framework
 
Webinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosWebinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcados
 
AutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic AcademyAutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic Academy
 
Staging liferay portal 6.2
Staging liferay portal 6.2Staging liferay portal 6.2
Staging liferay portal 6.2
 
JSR 352 - Processamento Batch na Plataforma Java - JustJava 2013
JSR 352 - Processamento Batch na Plataforma Java - JustJava 2013JSR 352 - Processamento Batch na Plataforma Java - JustJava 2013
JSR 352 - Processamento Batch na Plataforma Java - JustJava 2013
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junit
 
Análise de Performance do MySQL e MariaDB
Análise de Performance do MySQL e MariaDBAnálise de Performance do MySQL e MariaDB
Análise de Performance do MySQL e MariaDB
 
Testes de escalabilidade usando cloud
Testes de escalabilidade usando cloudTestes de escalabilidade usando cloud
Testes de escalabilidade usando cloud
 
Gerenciamento de Configurações - Puppet
Gerenciamento de Configurações - PuppetGerenciamento de Configurações - Puppet
Gerenciamento de Configurações - Puppet
 
Apache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSFApache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSF
 
Be React. Do Tests!
Be React. Do Tests!Be React. Do Tests!
Be React. Do Tests!
 
Framework de testes cecom
Framework de testes cecomFramework de testes cecom
Framework de testes cecom
 
Android DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimentoAndroid DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimento
 
Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?
 
Continuous Building usando TeamCity
Continuous Building usando TeamCityContinuous Building usando TeamCity
Continuous Building usando TeamCity
 
Ponteiros de Função
Ponteiros de FunçãoPonteiros de Função
Ponteiros de Função
 
Cloudformation
CloudformationCloudformation
Cloudformation
 
Google AppEngine: Desafios da adoção de cloud no mercado de seguros
Google AppEngine: Desafios da adoção de cloud no mercado de segurosGoogle AppEngine: Desafios da adoção de cloud no mercado de seguros
Google AppEngine: Desafios da adoção de cloud no mercado de seguros
 

Dernier

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfNatalia Granato
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 

Dernier (6)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Testes efetivos com DBUnit