簡體   English   中英

存根ActiveRecord結果數組

[英]Stubbing ActiveRecord result arrays

使用Ruby 1.8.6,當被測代碼對結果調用'count'方法時,對finder方法進行存根返回不起作用:

User.any_instance.stubs(:friends).returns([user1, user2])

這是因為Array.count僅在Ruby 1.8.7中添加。 我相信Rails還會通過ActiveRecord :: Calculations模塊動態添加一個count方法。

有什么方法可以將結果數組轉換為與Rails finder方法返回的特殊Array類型完全一樣的行為嗎? 對結果進行分頁時很容易:我可以簡單地調用[] .paginate。 但這不適用於普通的取景器結果。 我試過[].extend(ActiveRecord::Calculations)但這也不起作用。

您也可以模擬計數:

arr = [user1, user2]
arr.stubs(:count).returns(arr.size)
User.any_instance.stubs(:friends).returns(arr)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM