Secciones

Artículos para tus primeros pasos

Si estás empezando a introducirte en el mundo de Groovy y Grails, no te pierdas nuestros artículos básicos: 

Entrevistas con los expertos
 

Los protagonistas te cuentan de qué van los proyectos más importantes del mundo Groovy:


Un proyecto de:
ImaginaWorks
Campus Escuela de Groovy

Grails

Tests de integración sobre un controlador con servicios

Pablo Riesgo - jueves 18/09/2008

Hola,

Estoy tratando de realizar unos tests de integración sobre un controlador que contiene dependencias sobre varios servicios. Estos servicios tienen a su vez dependencias entre si. Siguiendo la documentación en http://grails.org/doc/1.0.x/guide/9.%20Testing.html sección "9.2 Testing Controllers with Services" he inyectado los servicios en el controlador manualmente.

Es decir, en el método setUp de mis tests :

//crea el controlador

vxStartCtl = new VxStartController()

//crea los servicios

sessionService = new SessionService()
profileService = new ProfileService()
userService    = new UserService()

// Inyecta las dependencias entre servicios
profileService.sessionService = sessionService
userService.profileService = profileService
userService.sessionService = sessionService

//inyecta los servicios en el controlador
vxStartCtl.profileService = profileService
vxStartCtl.userService = userService
vxStartCtl.sessionService = sessionService

 

Los servicios son accesibles desde los tests y en la ejecucion normal de la aplicación no tengo ningún problema, sin embargo, no consigo que estos servicios sean accesibles desde el controlador para los tests. La ejecución del test se para cada vez que en el controlador se emplea un servicio.

Mi duda es si directamente lo estoy haciendo mal de alguna manera o si realmente esto no funciona para varios servicios con dependencias entre si.

Un saludo,

Pablo.

PD: tendréis que hacer un acto de fe y confiar en que las dependencias están bien porque no podía meter todo el código.

Re: Tests de integración sobre un controlador con servicios

Pablo Riesgo - jueves 18/09/2008

Me contesto yo solo... si que funciona. El error venía de otra parte.

De todas maneras es muy interesante implementar los test utilizando la inyección de servicios y la metaClass para realizar mocking sobre un controlador, espero que esto sirva al menos para despertar la curiosidad de alguien.

UN saludo,

Pablo.

Responder al hilo | Volver al foro "Grails" | Volver a los foros