2011-03-14 15 views
13

que tiene un controlador con la siguiente anotaciónSpring 3 - Comprobación de un controlador de @Autowired servlet Contexto

@Autowired 
ServletContext servletContext; 

que parece funcionar bien y para autowired el contexto servlet correctamente. Sin embargo cuando intento ejecutar el junit consigo la siguiente excepción:

org.springframework.beans.factory.BeanCreationException: Error al crear el frijol con el nombre 'ControllerTest': La inyección de dependencias autowired fracasó; la excepción jerarquizada es org.springframework.beans.factory.BeanCreationException: No se pudo Autowire campo: javax.servlet.ServletContext

El asunto extraño es que esto sólo ocurrió con ServletContext, tengo otros granos autowired en este controlador en particular y las pruebas unitarias funcionan bien para aquellos.

Cualquier consejo sería muy útil.

Respuesta

10

Como estados de @bluefoot, debe usar MockServletContext. Para que esto funcione, en lugar de cablear automáticamente ServletContext, puede implementar ServletContextAware. Spring lo notará cuando se ejecute en un contexto de aplicación web e inyecte ServletContext y en la prueba JUnit puede llamar al método setServletContext para configurar MockServletContext.

+0

Esto es aún mejor, Gracias krock! – tsunade21

6

Bueno, no se supone que tengas un verdadero ServletContext dentro de un ambiente de prueba junit.

Debe usar MockServletContext.

+4

Gracias por la idea, lo arreglé agregando el siguiente código a uno de los archivos xml: tsunade21

Cuestiones relacionadas