Tengo un controlador Griales que se basa en el mensaje de taglib para resolver un mensaje de i18n:Cómo se burlan/ramal llamadas a taglib mensaje en el controlador de Grails
class TokenController {
def passwordReset = {
def token = DatedToken.findById(params.id);
if (!isValidToken(token, params)) {
flash.message = message(code: "forgotPassword.reset.invalidToken")
redirect controller: 'forgotPassword', action: 'index'
return
}
render view:'/forgotPassword/reset', model: [token: token.token]
}
}
He escrito una prueba de unidad para el controlador:
class TokenControllerTests extends ControllerUnitTestCase {
void testPasswordResetInvalidTokenRedirect() {
controller.passwordReset()
assert...
}
}
Desde el taglib mensaje se llama en el controlador me siento un MissingMethodException:
groovy.lang.MissingMethodException: No signature of method: TokenController.message() is applicable for argument types: (java.util.LinkedHashMap) values: [[code:forgotPassword.reset.invalidToken]]
¿Alguien sabe la mejor manera de evitar este problema en una prueba unitaria? Idealmente, me gustaría realizar afirmaciones sobre el mensaje, pero ahora mismo estaría contento si la prueba acaba de ejecutarse.
Gracias
I puede añadir esto a tu código: flash.args = [some, args] – Eldelshell