Testes efetivos com DBUnit

Preview:

Citation preview

Testes efetivoscom DBUnit

José Carlos

Testes efetivoscom DBUnit

José Carlos

● Surgimento● Características● Motivação● Exemplo da importância● Show me the code!● Créditos

Roteiro

● DBUnit foi criado em 2002 por Manuel

Laflamme

Surgimento

● 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

Características

Estado Pré-TestegetSetUpOperation()

Isolameto cenário RunTime

ConclusãogetTearDownOperation()

● 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.

Motivação

● 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?

Exemplo da importância

BUG!

● Equipe de QA vai ser responsável por descobrir esse bug.

● Importância teste de integração com DBUnit.

Exemplo da importância

Show me the code!

Obrigado!

● Surgimento● Características● Motivação● Exemplo da importância● Show me the code!● Créditos

Roteiro

● DBUnit foi criado em 2002 por Manuel

Laflamme

Surgimento

● 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

Características

Estado Pré-TestegetSetUpOperation()

Isolameto cenário RunTime

ConclusãogetTearDownOperation()

● 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.

Motivação

● 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?

Exemplo da importância

BUG!

● Equipe de QA vai ser responsável por descobrir esse bug.

● Importância teste de integração com DBUnit.

Exemplo da importância

Show me the code!

Obrigado!