Testar actions CRUD

Qual a melhor maneira de criar testes de integração para actions que dependem de métodos de persistência ?

É correto utilizar uma base de dados para testes ?

Será que serve?

http://www.junit.org

Cara,
aqui na empresa no inicio de cada teste que precise de persistencia eh criado um banco novo(no hsql)
sem dado nenhum

Dai o teste vai la e popula algumas tabelas (se precisar) para fazer o teste. Depois no final da um rollback.

[quote=“jairelton”]Será que serve?

http://www.junit.org[/quote]

Interessante.

Só que eu perguntei qual a melhor maneira de criar testes de integração. E não qual a ferramenta apropriada.

Já uso o JUnit. Gostaria de trocar informações sobre técnicas para realização do teste. Como por exemplo: seria uma boa opção utilizar o DBUnit para controlar os registros ?

Alguém tem mais alguma dica ?

Se o seu foco é integração, existem ferramentas para execução de testes dentro dos servidores de aplicação e robôs que simulam o usuário navegando nas telas. Existe uma chamada Cactus, mas não lembro qual das abordagens ele segue. O Junit é mais apropriado para teste de POJOs/BOs, ou seja, classes que não extendam/implementem frameworks.

O único jeito é apelar para ferramentas.

Com o JWebUnit eu consigo simular um usuário navegando nas telas(HTML) da aplicação, mas creio que isso se trata de teste de aceitação.

Já o Cactus é utilizado para realizar testes de integração em Servlets, Filtros, etc. O ponto forte do Cactus é testar interações com o container onde o aplicativo será implantado.

O ponto é: a partir do momento em que precisamos testar uma action que utiliza métodos de persistência, precisamos efetivamente saber se a interação com o banco de dados funciona e por isso o teste não é unitário. Um teste unitário deve testar apenas uma classe.

Então, eu gostaria de saber qual a melhor forma de realizar esses testes. Criar um TestCase para cada action e testar os métodos CRUD da mesma, etc…

Dê uma olhada na aplicação de referência para o Hibernate (caveatemptor). Ele simula o uso de recursos do Hibernate/BD com JUnit.

dbunit!

Eu sempre usei para testes de integração.

valeuz…

Não sei se é o que vc tá precisando, mas já usei o StrutsTestCase.
Vc faz testes em seus actions sem precisar de startar o servidor.

Até mais.

No meu caso eu posso ter uma copia da base de dados pra testes localmente!
eu realmente não sei se é a melhor maneira, nem se será possível pra vc, mas dessa forma eu consigo utilizar dados reais