2012-07-30 38 views
2

在我的控制器中,我有一個動作,它使用標準來打擊數據庫和獲取結果。Grails ...模仿條件返回PagedResultList

params.max = Math.min(params.max ? params.int('max') : 20, 100)  
def c = DomainObj.createCriteria() 
    def result =[] 
    result = c.list(params) { 
     'eq'("employerid", id) 
     } 

我已經這樣嘲笑這一呼籲在我的測試用例:

def result=[DomainObj1]   
      def mycriteria =[ 
       list: {Object params=null,Closure cls -> result}      
       ] 

DomainObj.metaClass.static.createCriteria = {mycriteria} 

工作正常爲止。

但是在控制器中,有一行代碼表示result.totalCount,其中result是標準查詢的輸出並且是PagedResultList類型。 但在測試案例中,iam將結果嘲笑爲arrayList,而不是PagedResultList。因此,如果從測試用例運行,代碼會在result.totalCount中斷。

的我怎麼能嘲笑的標準響應PagedResultList而不是ArrayList中,使其具有TOTALCOUNT

回答

0

看看its interface任何想法。你可以編寫它像

result = new PagedResultList(list: inctanceList, totalCount: inctanceList.size()) 
+0

不幸的是,這隻適用於Grails <2.x. – Nicholas 2012-12-18 10:57:25

+0

[list:inctanceList,totalCount:inctanceList.size()]作爲PagedResultList'怎麼辦? – 2012-12-18 11:24:50

+1

你不能施放它,構造函數在2.x中完全改變。 – Nicholas 2012-12-18 11:58:34