J'ai un contrôleur Grails qui repose sur le taglib de message pour résoudre un message i18n:Comment se moquer/stub appelle à taglib message dans le contrôleur 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]
}
}
J'ai écrit un test unitaire pour la contrôleur:
class TokenControllerTests extends ControllerUnitTestCase {
void testPasswordResetInvalidTokenRedirect() {
controller.passwordReset()
assert...
}
}
Depuis le taglib message est appelé dans le contrôleur je reçois un MissingMethodException:
groovy.lang.MissingMethodException: No signature of method: TokenController.message() is applicable for argument types: (java.util.LinkedHashMap) values: [[code:forgotPassword.reset.invalidToken]]
Quelqu'un connaît-il le meilleur moyen de contourner ce problème lors d'un test unitaire? Idéalement, je voudrais effectuer des affirmations sur le message, mais maintenant je serais heureux si le test venait de courir!
Merci
je puis ajouter ceci à votre code: flash.args = [some, args] – Eldelshell