Ho un regolatore di Grails, che si basa sul taglib messaggio per risolvere un messaggio i18n:Come deridere/stub chiamate al messaggio taglib controller 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]
}
}
Ho scritto un test di unità per il controller:
class TokenControllerTests extends ControllerUnitTestCase {
void testPasswordResetInvalidTokenRedirect() {
controller.passwordReset()
assert...
}
}
Dal momento che la taglib messaggio viene chiamato nel controller ottengo un MissingMethodException:
groovy.lang.MissingMethodException: No signature of method: TokenController.message() is applicable for argument types: (java.util.LinkedHashMap) values: [[code:forgotPassword.reset.invalidToken]]
Qualcuno conosce il modo migliore per aggirare questo problema in un test unitario? Idealmente vorrei esprimere delle affermazioni sul messaggio, ma al momento sarei felice se il test fosse appena iniziato!
Grazie
posso aggiungere questo al tuo codice: flash.args = [some, args] – Eldelshell