次の呼び出しをモックできます。
MyDomainClass.createCriteria().list{
eq('id',id)
eq('anotherParameter',anotherParameterId)
}
と:
def myCriteria = [
list : {Closure cls -> returnThisObject}
]
MyDomainClass.metaClass.static.createCriteria = { myCriteria }
でアドバイスされているように:
http://davistechyinfo.blogspot.com/2010/01/mocking-hibernate-criteria-in-grails.html
しかし、次の場合:
MyDomainClass.createCriteria().get{
eq('id',id)
eq('anotherParameter',anotherParameterId)
}
このアプローチは失敗します。おそらく、'get' はキーワードであり、'list' はキーワードではないためです。誰でもアドバイスできますか? を使用するメソッドの単体テスト カバレッジを単に放棄することなく、ドメイン クラスでこれをモックできるはずcreateCriteria().get{}
です。
提案は大歓迎です、
アレックス