私のコントローラーには、基準を使用してdbをヒットし、結果をフェッチするアクションがあります。
def c = DomainObj.createCriteria()
def result =[]
result = c.list(params) {
'eq'("employerid", id)
}
私はユニットテストでこの基準を模倣しようとしています。
def mycriteria =[
list: {Closure cls -> new DomainObj(id:1)}
] ]
DomainObj.metaClass.static.createCriteria = {mycriteria}
上記は機能しません。c.list(params)の実行中に例外をスローします。例外は「groovy.lang.MissingMethodException:メソッドのシグネチャがありません:testSearch_closure3.docall()は引数タイプに適用できます:
PS-ただし、コントローラーのc.list()からparamsを削除した場合、つまり以下を参照してください。
def c = DomainObj.createCriteria()
def result =[]
result = c.list() {
}
その後、動作しています。ここでの問題が何であるかわからない。どんな助けでも大歓迎です