Grails集成测试中的i18n

Grails集成测试中的i18n,grails,internationalization,integration-testing,Grails,Internationalization,Integration Testing,假设我有一个控制器方法,它使用i18n设置flash.message def someMethod(){ // ... flash.message = message(code: 'label.generic.delete.ok.message', default: 'Delete OK') // ... } 当我想编写一个集成测试来测试这个控制器时,我似乎找不到如何测试该消息的值 我的问题是,我不想在测试中通过这样做来硬编码消息 assert controller.flash.m

假设我有一个控制器方法,它使用i18n设置
flash.message

def someMethod(){
  // ...
  flash.message = message(code: 'label.generic.delete.ok.message', default: 'Delete OK')
  // ...
}
当我想编写一个集成测试来测试这个控制器时,我似乎找不到如何测试该消息的值

我的问题是,我不想在测试中通过这样做来硬编码消息

assert controller.flash.message == "Delete successfull"
assert controller.flash.message == message(code: 'label.generic.delete.ok.message')
我宁愿做这样的事

assert controller.flash.message == "Delete successfull"
assert controller.flash.message == message(code: 'label.generic.delete.ok.message')
这将抛出一个
groovy.lang.missingMethodException

我已经看过了,但唯一的解决方案是针对单元测试给出的

我使用的是
grails2.2.4


是否有人知道如何在集成测试中访问
消息()

您可以在集成测试中测试i18消息,如下所示:

在测试规范中注入bean
messageSource
,并调用
getMessage(字符串代码,对象[]参数,区域设置)

这里

代码:查找,如“calculator.noRateSet”和

args:在您的情况下,将为消息中的参数填充的参数数组可以设置为
null
,并且

区域设置:执行查找的区域设置 e、 g