0

我正在尝试从 grails 控制器的集成测试中测试国际化。控制器已启用 REST 并返回 JSON 响应。

为了测试国际化,可以简单地在 URL 中给出 ?lang=es 并且相应的消息包在 grails 内部使用。

我在一个支持项目中,国际化已经按预期进行。当我发出 curl 请求时,我会收到正确语言的响应。

集成测试只是为了验证不同语言的特定响应。

我不确定如何从集成测试中请求任何语言。

我试过 :

  1. response.locale = new Locale("es", "es") //不起作用
  2. controller.params.lang = "es" // 没用

我没有从http://grails.org/doc/latest/guide/i18n.html#changeLocales找到太多帮助。也不是来自其他问题,而是相关文章可能是如何在 Grails 2.0 服务中为 i18n 注入消息源的单元或集成测试使用

4

1 回答 1

0

集成测试使用具有更改当前测试请求的语言环境的GrailsMockHttpServletRequest方法的类。addPreferredLocale(Locale)

通常我们通过以下方式获取请求RequestContextHolder

def request = RequestContextHolder.currentRequestAttributes().request
request.addPreferredLocale(new Locale("pt","BR"))
于 2013-02-11T16:52:36.540 回答