Fazendo MOCK de um BD

Olá galera, gostaria de saber…

Como eu posso fazer um MOCK de um Banco de Dados ? Sendo que na classe de teste unitário terei que realizar INSERÇÃO,DELEÇÃO,SELECT,UPDATE.

Como eu posso fazer um mock de um BD? Nao estou conseguindo visualizar isso… podem me ajudar por favor??

Estou perguntando por que na classe original eu tenho funcoes que retornam resultSet…

Obrigado!!!

O mock serve para voce simular componentes externos, nao para testa-los. Voce vai testar como o seu sistema se comporta com as diversas possiveis formas de resposta de um sistema externo.

No seu caso vc vai “mockar” o ResultSet e voce mesmo informar qual sera o retorno para poder testar como o seu sistema ira se comportar com essa resposta.

Voce vai dizer se o metodo next() vai retornar true num teste para verificar como o objeto testado vai reagir a isso. Num outro teste vai dizer pra ele retornar false pra ver se seu objeto esta respondendo como voce espera no caso do retorno false. Num outro teste voce vai retornar uma excecao para o execute do PreparedStatement e verificar se a excecao esta sendo tratada corretamente.

Se o que voce quer é testar a integracao de fato com o banco de dados os mocks nao vao servir de muita coisa, eles sao apenas para “fingir” que voce esta usando um BD.

Nesse caso voce vai precisar de um banco de testes no qual os dados serao gravados durante os testes, alterados e depois voce vai ter que retornar o banco para o estado que estava antes dos testes para que possa repeti-los sempre que quiser.

Da uma olhada no DbUnit, ele ajuda bastante nos testes de integracao com banco.

[quote=YvGa]O mock serve para voce simular componentes externos, nao para testa-los. Voce vai testar como o seu sistema se comporta com as diversas possiveis formas de resposta de um sistema externo.

No seu caso vc vai “mockar” o ResultSet e voce mesmo informar qual sera o retorno para poder testar como o seu sistema ira se comportar com essa resposta.

Voce vai dizer se o metodo next() vai retornar true num teste para verificar como o objeto testado vai reagir a isso. Num outro teste vai dizer pra ele retornar false pra ver se seu objeto esta respondendo como voce espera no caso do retorno false. Num outro teste voce vai retornar uma excecao para o execute do PreparedStatement e verificar se a excecao esta sendo tratada corretamente.

Se o que voce quer é testar a integracao de fato com o banco de dados os mocks nao vao servir de muita coisa, eles sao apenas para “fingir” que voce esta usando um BD.

Nesse caso voce vai precisar de um banco de testes no qual os dados serao gravados durante os testes, alterados e depois voce vai ter que retornar o banco para o estado que estava antes dos testes para que possa repeti-los sempre que quiser.

Da uma olhada no DbUnit, ele ajuda bastante nos testes de integracao com banco.[/quote]

hummm, nao entendi muito bem =/

Poderia me dar um exemplo por favor ?