rspec:使用render_views从控制器规范中存储模板的辅助方法调用

时间:2011-03-10 16:19:35

标签: ruby-on-rails ruby-on-rails-3 rspec rspec2 stub

从Rails 3 / Rspec 2开始,我试图利用控制器规范的render_views功能。我遇到的问题是我们刚刚安装了kaminari寻呼机宝石,我希望从我的视图中删除<%= paginate @sites %>调用,所以我不必手动删除所有kaminari在集合上定义的内部方法,用于paginate帮助程序。

如果这是在视图规范中,我可以通过调用view.stub(:paginate)来删除辅助方法,但是我找不到任何方法来从控制器规范获取视图对象的句柄(例如{{ 1}})。有没有办法做到这一点,或者我们可以选择禁用此方法的render_views,或者存储一堆与我们无关的内部kaminari方法(因为它们应该被kaminari的测试覆盖,并且可能会改变未来的版本)?

controller.view.stub(:paginate)

1 个答案:

答案 0 :(得分:1)

要么我找不到合适的解决方案。

可能您可能需要稍微调查controller.view_context

我和(目前)确定的是rspec / support / kaminari.rb中的猴子补丁:

module Kaminari::ActionViewExtension::InstanceMethods
  def paginate(scope, options = {}, &block)
    puts "Should test pagination"
  end
end

所以它默默地失去了分页。