Grails1.3.7をベースにしたアプリがあります。具体的には、組み込みのtaglibに基づくカスタムtaglibの単体テストを作成する必要があり<g:select />
ます。
この以前のSO投稿で解決策を確認しましたが、私の場合、記載されている解決策は機能していません(一部のプロパティは適切にモックアップされていません)。
私が見つけた他の解決策はこれでした。このアプローチを使用して、必要なプロパティをFormTagLib
除いて、モックアップされたプロパティのほとんどを取得します。私が得る実際のエラーはです。grailsApplication
select
Cannot invoke method getArtefact() on null object
このような場合、どうすれば単体テストを正しく書くことができますか?
編集
これ
が私のテストクラスと完全なスタックトレースです。g.select
スタックトレースの45行目は、カスタムtaglibからの呼び出しです。私のカスタムtaglibは次のようなものです
def clientSpecificQueues = {attrs->
def queueList = taskService.getClientSpecificQueues(session.clientName)
def queueLabel = "Some String"
if (queueList.size() > 0){
out << queueLabel
else
out << g.select(name:'queueId', from: queueList, optionKey: 'id', optionValue: 'name')
}