RSpec2:view.should render_template最佳实践?

时间:2010-11-16 14:31:19

标签: rspec rspec2

我几个月来一直在寻找确定的答案,而且 RSpec书根本没有触及它:

我们现在如何处理视图规范中部分视图的渲染 在RSpec2?

我正在尝试使用大量(35K以上的视图和相关规格) 升级到Rails3 / RSpec2。我的观点非常广泛地使用了部分内容 这个问题对我来说是一个巨大的障碍。

before do
 view.should render_template("event_list", :locals => {:calendar => @calendar})
end

导致我的所有相关规格失败:

expecting <"event_list"> but rendering with <"">.
Expected block to return true value.

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为您现在需要传入哈希而不是部分名称:

view.should render_template(:partial=>"_event_list", :locals => {:calendar => @calendar})

修改

FWIW我也无法让this工作,但是monkeypatching让它通过了:

class ActionView::Base
  def stub_partial(hash)
    view_paths.unshift(ActionView::FixtureResolver.new(hash))
  end
end

然后

before(:each) do
  view.stub_partial("path_to/_partial" => "")
end

也许大卫会解释正确的方法......