Melhor forma de organizar os pacotes de testes unitários dentro de um projeto

9 respostas
E

Boa tarde pessoal,

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.

Estou entre três abordagens:

1-) Cada pacote tem um sub-pacote de testes

  • src
    – pacote1
    — pacote1.testes
    – pacote2
    — pacote2.testes

2-) Um pacote único para testes

  • src
    – pacote1
    – pacote2
    – testes

3-) Testes misturados com as classes, dentro dos pacotes

  • src
    – pacote1
    – pacote2

E ai senhores, qual a melhor? Ou nenhuma dessas?

Sugestões são bem vindas.

Obrigado,
Eduardo

9 Respostas

T

Olá
Prefiro a primeira opção.
Abraços

R

a 1ª opção eu prefiro!

Ate mais

Q

prefiro a 4a. opção! :twisted:

src /
   main / java
       br.com.meupacote.MinhaClasse

   test / java
       br.com.meupacote.MinhaClasseTest

Qualquer semelhança com o maven não é coincidência! :wink:

A

porque não utilizar a estrutura default do Maven:

src
–main
-----java
--------aqui vem os pacotes
–test
-----java
--------aqui vem os pacotes

A

desculpem… postei sem ver o post do qmx.

Concordo com ele.

A

Concordo, a estrutura do maven é a mais natural, porém não vejo isto como um padrão e sim uma comodidade. Use a que ficar mais simples pra vc.

P

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.

E

Obrigado pessoal. A estrutura sugerida por vocês, a do Maven, me parece mais agradável e organizada mesmo.

Valeu!
Eduardo

J

esb:

+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

Criado 22 de fevereiro de 2008
Ultima resposta 27 de mar. de 2008
Respostas 9
Participantes 8