Teste automaticos

Olá pessoal!

Estou fazendo um P&D para alguma ferramente para testes automatizados. Estou em um projeto, onde apenas testes de unidade não são o suficiente para garantir a funcionalidade do projeto, onde por exemplo, tem algumas ações que dependendem de um update no banco de dados para acontecer.
Preciso de uma ferramenta onde posso registrar as rotinas a serem seguidas no teste.

Alguem já trabalhou com alguma do tipo?

Depende. Se você está só no Java SE, pode usar o DBUnit para manipular o estado do banco de dados. Se está no Java EE, pode utilizar o Arquillian, juntamente com sua extensão de persistência.

@lvbarbosa obrigado!!
Utilizando JavaEE vou dar uma olhada no Arquillian

valew!

Cara, eu andei estudando mais sobre testes esses dias, e decidi abandonar o Arquillian como ferramenta principal de testes de sistema. Estou estudando Continuous Integration (ou CI), e mudei um pouco de opinião a respeito do Arquillian.

Um dos artigos que li e me influenciou bastante foi esse aqui:

https://blog.sebastian-daschner.com/entries/testing_javaee_applications

Basicamente, o cara fala (e eu concordo) que o Arquillian é ótimo para testar o plumbing do Java EE (como dependency injection, quando você utiliza producers customizados), mas não vale a pena ficar iniciando e parando o servidor toda hora, leva muito tempo. Os testes devem ser rápidos.

Testes como o que você quer fazer (de sistema), devem teoricamente ser executados em um ambiente o mais parecido possível com o ambiente de produção. Portanto, como o cara sugere no artigo, é mais interessante automatizar o processo com containers. A ideia é que você faça o deploy da aplicação em um ambiente de testes e, logo após o deploy, execute os testes de sistema.

Ainda estou estudando sobre o tema, mas essa abordagem me pareceu muito mais interessante (e mais simples) do que ficar startando e parando o servidor o tempo inteiro com o Arquillian.

Gostaria que mais gente desse opinião, mas o pessoal não costuma muito falar sobre testes aqui no forum :confused: