我想知道如何验证传递给 Controller 中渲染模板的本地人
Controller :
def lelf_panel
# ...
if some_condition
locals_hash = some_very_long_hash_A
else
locals_hash = some_very_long_hash_B
end
render :partial => "left_panel", :layout => false, :locals => locals_hash
end
当前规范:
it 'should render correct template for lelf_panel' do
# ...
get 'left_panel'
response.should render_template('system/_left_panel')
end
现在,我需要为该 Controller 完成Rcov,因此我需要添加/修改规范以覆盖“some_condition”结果。而且我想验证传递给渲染的'lelf_panel'本地人,就好像我只验证render_template一样,为这两个结果渲染的部分页面是相同的。
我在下面的rspec文档中检查了'render_template'
http://rubydoc.info/gems/rspec-rails/2.8.1/RSpec/Rails/Matchers/RenderTemplate:render_template
它仅提供消息的第二个参数,因此如何测试传递给渲染的本地变量?
最佳答案
据我所知,无法以您所描述的方式直接检查本地人的模板。
您可以将locals_hash更改为@locals_hash,然后通过assigns(:locals_hash)检查结果。
或者,您可以在生成的HTML上使用选择器,并检查其中是否包含一些指示性内容-例如,如果locals_hash影响页面的标题,请检查生成的HTML页面标题是否符合您的期望。
关于ruby-on-rails - 如何在RSpec中验证渲染模板的局部性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8843867/