Tenho uma dúvida, no caso, estrutural. Até dei uma procurada no forum, mas confesso que não encontrei nada relevante a respeito, portanto, peço que desculpem caso exista um thread acerca do assunto.
Gostaria de saber qual a melhor forma de organizar os testes unitários dentro da estrutura de um projeto.
Normalmente utilizo um “source folder” exclusivo para os testes, porque normalmente a idéia é que códigos de teste não fiquem juntos com os códigos da aplicação. Você pode pegar um projeto de código aberto, como por exemplo o hibernate, e você pode notar que os códigos de teste estão em uma estrutura diferente da dos códigos do projeto, ou seja, os testes não interessam para o cliente final (que não seja um desenvolvedor do projeto ou um cliente que vá estender o projeto), ou seja, os testes também não devem ir no deploy (seja qual for a forma, war, ear, etc).
Mas veja que você pode até misturar os códigos fonte da aplicação com os códigos de teste, o importante é que no final, os códigos de teste não estejam no deploy.
+1 dica: lembre que colocando os testes no mesmo pacote a visibilidade da classe sob teste é diferente que
se vc colocar no mesmo pacote. Forçando os testes a ficarem em outro pacote vc força que o uso da API
(pública) seja o mesmo que para qualquer outra classe usuária.
A estrutura do maven é a que prefiro também. Portanto, a sugestão fica:
src
+java
++pacote1
++pacote2
test
+java
++pacote1
+++testes
++pacote2
+++testes