在我的控制器中,我有一个使用条件来命中数据库并获取结果的操作。
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() 中删除参数,请参见下文:
def c = DomainObj.createCriteria()
def result =[]
result = c.list() {
}
然后,它正在工作。不确定这里的问题是什么。任何帮助表示赞赏