2010-05-24 9 views
8

Estoy volviendo a Java después de una larga temporada en el mundo Ruby y tengo una pregunta sobre las pruebas JUnit y la fuente que estoy probando.Incluye pruebas unitarias en el mismo paquete que el código fuente en Java

Si tengo un paquete de código de gráficos para mi empresa, vamos a llamarlo com.example.graphics, ¿debo incluir mis pruebas en ese paquete también o deberían incluirse en un paquete por separado, como com.example.graphics.test?

+0

Vea también http://stackoverflow.com/questions/440786/junit-java-testing-non-public-methods – Raedwald

Respuesta

31

En el mismo paquete de Java está bien. De hecho, es necesario si necesita acceder a clases, métodos o campos de paquetes privados. Sin embargo, la fuente debe estar lógicamente separada:

src/main/com/example/graphics 
src/test/com/example/graphics 
+1

+1, según lo sugerido por el diseño de directorio Maven Java Archetype estándar – ramirogm

1

Si no necesita acceder a clases privadas, en realidad es una cuestión de sabor.

A veces incluso tiendo a crear un proyecto de prueba adicional referenciado al proyecto del producto. Por lo tanto, el producto y la prueba están claramente separados.

1

Personalmente guardo todas mis pruebas en el mismo paquete, pero en el árbol de prueba de Maven (que siempre utilizo para proyectos de Java). Considera usar Maven también para tus construcciones, ahorra mucho trabajo de tu parte. Aplica una estructura similar a la que menciona bkail, pero le ofrece mucho más que un diseño de carpeta de proyecto estandarizado: ciclo de vida del proyecto (limpieza, compilación, paquete, prueba), complementos, etc.

0

Poner las pruebas en un paquete separado tiende a evitar el problema de tener accidentalmente algún método o clase en el alcance del paquete que los clientes pretendían usar.

Cuestiones relacionadas