java - tutorial - pruebas unitarias de software ejemplo
OrganizaciĆ³n de pruebas JUnit en proyectos (5)
Puse mis pruebas en una estructura de paquete separada pero similar / paralela. Así es como a Maven le gustan las cosas y también funciona bien con IDE. Me gusta de esta manera porque no tengo mi código de prueba mezclado con mi código de aplicación, sin embargo, todavía puedo acceder a cosas privadas del paquete con el propósito de burlarse y verificar el estado.
¿Cuál consideraría la mejor práctica para organizar pruebas JUnit en un proyecto, y por qué? Por ejemplo, ¿mantienes tus pruebas al lado de las clases que evalúan? ¿Los pones en una estructura de paquete separada pero paralela? ¿Utiliza una estrategia de organización diferente por completo?
Solo usa Maven . Con maven, puede crear una estructura predeterminada para su proyecto:
mvn archetype:create -DgroupId=com.yoyodyne -DartifactId=UberApp
Esto creará el diseño de directorio estándar de Maven que contiene espacio para pruebas de unidad, así como su proyecto principal. Usando maven, puede ejecutar las pruebas unitarias sin empaquetarlas en un contenedor, y puede construir un contenedor que contenga solo su aplicación. También puede tener diferentes classpaths y diferentes dependencias para ejecutar, probar y compilar.
Me resulta muy perturbador ver que poca gente de por aquí está usando Maven (o al menos Ant, aunque prefiero Maven para el manejo de la dependencia).
Utilizo una estructura de paquetes separada pero paralela por varias razones.
- Mantiene las pruebas organizadas de la misma manera que el código de la aplicación.
- Puedo construir fácilmente solo los archivos de la aplicación para su distribución.
- El código de prueba todavía tiene acceso a mi código de aplicación.
- No es tan abarrotado como tener un código de prueba mezclado con el código de la aplicación.
como dijo Bill el Lagarto,
ayuda tener una estructura paralela para que 1) pueda enviar un src.zip o src.tar.gz y omita las pruebas de la unidad 2) En un nivel de sistema de control de versiones, puede poner ganchos sobre quién cambia el código fuente y quién cambia solo pruebas unitarias
"Desventaja"
No puede sellar su archivo JAR si las pruebas de fuente y unidad están en el mismo paquete (es decir, debe eliminar las pruebas de unidad antes de preparar su .JAR y sellarlo)
Respeto la estructura del proyecto Maven, incluso cuando no uso maven en un proyecto, simplemente porque me acostumbré. La mejor práctica es usar una carpeta de origen separada, que respete la misma estructura de paquete que su carpeta de origen principal.
Las fuentes específicas de prueba (utilidades que codifica para que solo se utilicen en las pruebas) se deben colocar allí y, si tiene la intención de usarlas con el código de tiempo de ejecución de la aplicación, muévalas a la carpeta de origen principal. La idea es desacoplarse bien, del mismo modo que se factoriza la eficiencia separando la persistencia y el control por ejemplo.