Junit

Olá pessoal, já utilizo o junit há algum tempo e estou aki mais tentando trocar um idéia do que propriamente com uma dúvida. Acontece o seguinte, alguem pode me indicar uma estratégia interessante para fazer rodar testes quando juntamente com a aplicação se está trabalhando com um Banco de Dados e seus respectivos dados, hoje eu faço o seguinte, criei um único método de teste responsável por fazer as operações básicas (salvar, atualizar e apagar) e depois um para cada tipo de listagem, como eu faço uso do mesmo banco para ver o comportamento da aplicação, acaba que o mesmo já está povoado e isso influi no momento em que eu faço o teste das listagens, porque eu acabo amarrando estes a um único resultado como condição para que deêm certo. Eu não quero criar um único banco para os testes do junit, apesar de que isso torne os meus testes mais independentes, por outro lado, eles vão ficar menos reais, porque ai eu estarei trabalhando com uma massa de dados que não confere com a realidade da aplicação, quebrando um fundamento dos testes ao meu ver. Alguem tem uma sugestão?

Aqui fazemos o seguinte.

No inicio dos testes, crio um banco vazio (atualmente usamos o hsql) ou um banco com alguns dados basicos para todos os testes.

O teste entao coloca alguns valores la para testar…
No final faço um rollback de tudo e o banco esta limpo para o proximo teste.

O ideal nesse caso é você ter um banco de dados embutido (HSQLDB, Derby) para utilizar nos testes que envolvem comunicação com o DB.

E melhor ainda seria se você tivesse um build bem estruturado que levantasse o banco de testes e executasse os test cases.

Entendo, eu faço isso quando trabalho com o jboss embbedable, levanto o banco no momento da criação de testes e depois eu o derrubo, para ser levantado novamente a cada teste.

Obrigado pela dica, vou procurar segui-las, na verdade eu não gosto muito desta estratégia porque acho que ela foge um pouco da realidade da aplicação, mas pelo menos deixa os testes mais independentes.

obrigado a todos