【问题标题】:How to mock g.message while writing unit test for grails controller如何在为 grails 控制器编写单元测试时模拟 g.message
【发布时间】:2013-03-09 11:20:41
【问题描述】:

我正在使用 grails 版本 1.3.7。在我的控制器应用程序中,我正在使用 messages.properties 并将属性的值获取为

g.message(code:messageKey, args:msgParamsArr)

但是当我开始为控制器中的动作编写单元测试时,它给了我错误。

请您帮助我了解如何精确模拟g.message,以便现有代码仅从messages.properties 获取消息属性。

【问题讨论】:

  • 您遇到了什么错误?请提供更多信息。

标签: unit-testing grails


【解决方案1】:

你可以模拟它:

controller.metaClass.message = { message ->
    message.code
}

如果您只想使用.contains() 验证参数,也可以包含message.args

【讨论】:

  • 只是在这里说一下,在 grails 2.4.3 中,看起来消息对象在 metaClass 下不再可用。此解决方案似乎不适用于 2.4.3。
【解决方案2】:

这就像 Grails 2.4.5 中的冠军:

controller.metaClass.message = { Map attrs -> attrs.toString() }

【讨论】:

    猜你喜欢
    • 2012-07-28
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    相关资源
    最近更新 更多