从Rails 3 / Rspec 2开始,我试图利用控制器规范的render_views功能。我遇到的问题是我们刚刚安装了kaminari寻呼机宝石,我希望从我的视图中删除<%= paginate @sites %>
调用,所以我不必手动删除所有kaminari在集合上定义的内部方法,用于paginate
帮助程序。
如果这是在视图规范中,我可以通过调用view.stub(:paginate)
来删除辅助方法,但是我找不到任何方法来从控制器规范获取视图对象的句柄(例如{{ 1}})。有没有办法做到这一点,或者我们可以选择禁用此方法的render_views,或者存储一堆与我们无关的内部kaminari方法(因为它们应该被kaminari的测试覆盖,并且可能会改变未来的版本)?
controller.view.stub(:paginate)
答案 0 :(得分:1)
要么我找不到合适的解决方案。
可能您可能需要稍微调查controller.view_context
。
我和(目前)确定的是rspec / support / kaminari.rb中的猴子补丁:
module Kaminari::ActionViewExtension::InstanceMethods
def paginate(scope, options = {}, &block)
puts "Should test pagination"
end
end
所以它默默地失去了分页。