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