Utilizo el plugin Grails Spring Security para mi proyecto y ahora quiero probar mi código unitariamente. Tengo el siguiente código en mi controlador:Grails Spring Security Testing
def index() {
redirect action: 'show', params: [id: springSecurityService.currentUser.id]
}
mi clase de prueba tiene el siguiente código:
void testIndex() {
controller.index()
assert "/user/list" == response.redirectedUrl
}
Esta prueba falla:
| Running 8 unit tests... 1 of 8
| Failure: testIndex(xxx.UserControllerTests)
| java.lang.NullPointerException: Cannot get property 'currentUser' on null object
at xxx.UserController.index(UserController.groovy:12)
at xxx.UserControllerTests.testIndex(UserControllerTests.groovy:19)
¿Cómo puedo autenticar a un usuario la seguridad de primavera en un caso de prueba? ¿Cómo escribirías la prueba unitaria?
En mi controlador que tengo: UserController clase { \t \t def springSecurityService ... – Nadya
¿Debo escribir eso en el ControllerTest? – Nadya
@ user1726376 No, no debería necesitarlo en el ControllerTest. Solo me estaba asegurando de que tuviera una referencia a 'springSecurityService' debido al hecho de que tenía el mensaje de error" No se puede obtener la propiedad 'currentUser' en el objeto nulo ". –