如何在Grails 2.2.4中模拟PagedResultList

时间:2013-09-20 05:06:32

标签: grails groovy mocking hibernate-criteria

似乎在grails 2.2.4中更改了PagedResultList,这导致了单元测试中的一些问题。

构造函数已从

更改
PagedResultList(list())

PagedResultList(GrailsHibernateTemplate template, Criteria crit) 

2 个答案:

答案 0 :(得分:3)

这样的事情怎么样......

def mockC = mockFor(org.hibernate.Criteria) 
mockC.demand.list { return []} //PagedResultList constructor calls this
def pagedList = new PagedResultList(null, mockC.createMock()){
    {
       //Using a static block to set private variables 
       //since we can't call a constructor here!
       list = yourList
       totalCount = yourList.size()
    }
}

答案 1 :(得分:2)

如果只关心返回值,请将totalCount附加到ArrayList

def list = [domainObj1, domainObj2]
list.metaClass.getTotalCount {
    2
}
相关问题