Unit testing 如何使用Grails2.x单元测试从i18n消息属性获取消息?

Unit testing 如何使用Grails2.x单元测试从i18n消息属性获取消息?,unit-testing,grails,internationalization,message,Unit Testing,Grails,Internationalization,Message,在Grails2.x中编写测试用例时,从I18n属性文件获取消息时遇到问题 在我使用的控制器中,如下所示: g.message(code:'upload.coverpage.file.isempty.msg') 从控制器进入结果对象时,消息将返回为: upload.coverpage.file.isempty.msg 但最初的信息是: "Sorry, the file size is empty." 如何获取原始消息。 有人知道吗 谢谢和问候 arnagendla我认为这是测试消息的正确方

在Grails2.x中编写测试用例时,从I18n属性文件获取消息时遇到问题

在我使用的控制器中,如下所示:

g.message(code:'upload.coverpage.file.isempty.msg')
从控制器进入结果对象时,消息将返回为:

upload.coverpage.file.isempty.msg
但最初的信息是:

"Sorry, the file size is empty."
如何获取原始消息。 有人知道吗

谢谢和问候


arnagendla

我认为这是测试消息的正确方法。我现在正在为在grails 1.3.5上编写的应用程序编写测试,该应用程序在控制器单元测试中出错:

No signature of method: ChallengeListingController.message()
我决定用这种方式解决这个问题:

ChallengeListingController.metaClass.message={def msg-> return msg.code}

我准确地返回messagecode:这足以决定字符串是否正确,当然您可以将代码与值分开。

为什么是g.message?您可以在controller.@Mr.Cat中使用message(代码:“…”)。从技术上讲,您不需要
g.
前缀,但我还是倾向于使用它(a)让阅读代码的人更清楚地知道我打算将其作为taglib调用,(b)因为可能会发生名称冲突。(b) 在webflow中尤其痛苦,如果您在控制器中分配
flash.message
,然后在GSP中调用
message(…)
停止工作(但是
g.message(…)
仍然可以正常工作)。嗨,猫先生,谢谢。但是我需要在哪里使用这个代码呢?在控制器或控制器测试中?当然在测试中。它动态地向控制器添加消息方法。但这是针对Grails1.3.5的。在测试中使用assertEquals('upload.coverpage.file.isempty.msg',mockFlash.message),返回消息代码而不是值是非常正确的