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