Grails集成测试中的i18n
假设我有一个控制器方法,它使用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
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消息,如下所示:
在测试规范中注入beanmessageSource
,并调用getMessage(字符串代码,对象[]参数,区域设置)
这里
代码:查找,如“calculator.noRateSet”和
args:在您的情况下,将为消息中的参数填充的参数数组可以设置为null
,并且
区域设置:执行查找的区域设置
e、 g