Estoy trabajando en un proyecto Spring MVC y tengo pruebas unitarias para todos los componentes en el árbol fuente.Pruebas unitarias vs pruebas de integración con Spring
Por ejemplo, si tengo un controlador HomeController
, que necesita tener un LoginService
inyecta en él, entonces en mi unidad de prueba HomeControllerTest
I simplemente una instancia del objeto de forma normal (fuera de la primavera) e inyectar la propiedad:
protected void setUp() throws Exception {
super.setUp();
//...
controller = new HomeController();
controller.setLoginService(new SimpleLoginService());
//...
}
Esto funciona muy bien para probar cada componente como una unidad aislada, excepto ahora que tengo unas pocas docenas de clases en el proyecto, después de escribir una clase y escribir una prueba de unidad exitosa para ello, me olvido de actualizar mi Spring MVC archivo de contexto que realiza el cableado real en la aplicación implementada. Descubrí que olvidé actualizar el archivo de contexto cuando implementé el proyecto en Tomcat y encontré un montón de NullPointers de beans no conectados.
lo tanto, aquí están mis preguntas:
Este es mi primer proyecto de Primavera - ¿Es normal para crear pruebas unitarias para los granos individuales, como lo he hecho, y luego crear un segundo conjunto de pruebas (pruebas de integración) para probar que todo funciona como se espera con el contexto de la aplicación real? ¿Existe una mejor práctica establecida para esto?
Además, ¿cómo separa las pruebas unitarias de las pruebas de integración? Tengo todo el código fuente en
src
, la unidad prueba entest
- ¿debería haber una segunda carpeta de prueba (comotest-integration
) para casos de prueba de integración?
Dado que este es mi primer proyecto de Primavera, tengo curiosidad por cómo los demás por lo general van haciendo este tipo de cosas - y en lugar de reinventar la rueda y no me pido al resto de la comunidad.
Esto suena como una buena estrategia. Pero con las pruebas unitarias y las pruebas de integración en los mismos directorios, Eclipse no tiene forma de diferenciarlos, ¿verdad? Las únicas opciones de Eclipse para ejecutar pruebas junit es ejecutar una sola o ejecutar todas en una determinada carpeta; no puede dividirlas por nombre como Ant. –
Tuve que volver atrás y consultar Eclipse; está en lo cierto, no veo una manera de diferenciar las pruebas si están en el mismo directorio. Mi último proyecto de primavera fue hecho en Idea/Intellij y ha sido lo suficientemente largo como para no recordar exactamente cuál era la configuración de IDE. –