Ruby on rails 如何在视图规范中测试分部?

Ruby on rails 如何在视图规范中测试分部?,ruby-on-rails,ruby,ruby-on-rails-4,rspec,rspec-rails,Ruby On Rails,Ruby,Ruby On Rails 4,Rspec,Rspec Rails,我想在我的layouts/application.html.erb中有一个用户菜单。将来,我计划将其移动到partial layouts/_user_menu.html.erb 我应该如何开始,只在application.html.erb_spec.rb中为此菜单编写测试,然后作为重构将其移动到partial,将所有测试保留在application.html.erb_spec.rb中 或者编写单独的测试_user_menu.html.erb_spec.rb?在这种情况下,如何测试applicat

我想在我的layouts/application.html.erb中有一个用户菜单。将来,我计划将其移动到partial layouts/_user_menu.html.erb

我应该如何开始,只在application.html.erb_spec.rb中为此菜单编写测试,然后作为重构将其移动到partial,将所有测试保留在application.html.erb_spec.rb中

或者编写单独的测试_user_menu.html.erb_spec.rb?在这种情况下,如何测试application.html.erb以呈现此部分?我认为在这里使用html选择器不是一个好主意,请考虑类似于我的application.html.erb_spec.rb中的内容:

expect(view).to render_partial 'user_menu'
请试试这个

response.should render_template(:partial => 'partial_name')

我没有按预期工作。它查找“应用程序/部分名称”,而不是“布局/部分名称”。如果我显式地检查render_模板(partial:'layouts/_partial_name'),它就会工作。但这有点让人困惑,为什么我不能检查render_template(partial:“layouts/partial_name”)而不是render_template(partial:“layouts/_partial_name”),我也尝试了你想要的方法,但我找到了上面的方法,所以我们必须写文件的真实名称,因为我们正在尝试检查“render_template”,这就是为什么我们要用“_”来写部分名称。