2010年1月10日日曜日

Grailsの統合テスト内で、タグライブラリを呼び出す

Grailsのバージョンは1.2.0

備忘録的なメモ

タグライブラリやコントローラーのIntegration-Test書いてると、テストの中で標準(g)のタグライブラリ呼び出したくなることありませんか?あんまないか。


import org.codehaus.groovy.grails.commons.ApplicationHolder
import org.codehaus.groovy.grails.web.taglib.NamespacedTagDispatcher

class CustomTagLibSpecification extends GroovyPagesSpecification {
  NamespacedTagDispatcher g = ApplicationHolder.application.mainContext.getBean('gspTagLibraryLookup').lookupNamespaceDispatcher('g')

 def "仕様かきかき"() {
  message = g.message(code:"message.properties.message.code")
  ...
 }
}


上のはSpockの仕様ですけど、普通のGroovyPagesTestCase使ったテストケースでもいけるんじゃないかと。まあ、applyTemplate使ってもいいすけど。
コントローラ内だったら、なんにもしなくても message(code:"ほげほげ") でタグライブラリ呼び出せるんだけど…

もっといい方法ありましたら教えてくださいです。