0

Grailsコントローラーの統合テストから国際化をテストしようとしています。コントローラはREST対応であり、JSON応答を返します。

国際化をテストするために、URLに?lang = esを指定するだけで、それぞれのメッセージバンドルが内部でgrailsによって使用されます。

私は、国際化が想定どおりに機能しているサポートプロジェクトに参加しています。カールリクエストを送信すると、正しい言語で応答が返されます。

統合テストは、さまざまな言語固有の応答を検証することを目的としています。

統合テストからどの言語を要求できるかわかりません。

私は試した :

  1. response.locale = new Locale( "es"、 "es")//機能しませんでした
  2. controller.params.lang ="es"//機能しませんでした

http://grails.org/doc/latest/guide/i18n.html#changingLocalesから、これに関するヘルプはあまり見つかりませんでした。そして、他の質問からではなく、関連する記事は、Grails2.0サービスでのi18n用の注入されたmessageSourceのユニット化または統合テストの使用方法である可能性があります

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 に答える