使用Ruby 1.8.6,当测试中的代码调用结果上的'count'方法时,对finder方法进行存根以返回数组不起作用:
User.any_instance.stubs(:friends).returns([user1, user2])
那是因为Array.count只在Ruby 1.8.7中添加了。 Rails还动态添加了count方法,我相信通过ActiveRecord :: Calculations模块。
有没有办法将此结果数组转换为与Rails finder方法返回的特殊Array类型完全相同的行为?分页结果时,很简单:我可以简单地调用[] .paginate。但这不适用于正常的取景器结果。我试过[].extend(ActiveRecord::Calculations)
,但这也不起作用。
答案 0 :(得分:-1)
您也可以模拟计数:
arr = [user1, user2]
arr.stubs(:count).returns(arr.size)
User.any_instance.stubs(:friends).returns(arr)