我几个月来一直在寻找确定的答案,而且 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.
有什么建议吗?
答案 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
也许大卫会解释正确的方法......