Rspec:呈现部分

Rspec:呈现部分,rspec,rspec-rails,Rspec,Rspec Rails,我对Rspec有点陌生,这可能是一个很容易回答的问题 尝试运行测试时出现以下错误: Failure/Error: expect(view).to render_template(:partial => "_ad_column", :count => 2) expecting _ad_column to be rendered 2

我对Rspec有点陌生,这可能是一个很容易回答的问题

尝试运行测试时出现以下错误:

Failure/Error: expect(view).to render_template(:partial => "_ad_column", :count => 2)                                                                                expecting _ad_column to be rendered 2 time(s) but rendered 0 time(s)                                                                                             # ./spec/views/requests_spec.rb:5:in `block (2 levels) in <top (required)>'
基本上,我有一个在每个页面上呈现两次的部分,它是在application.html.erb中设置的,我试图确保它在测试期间显示出来。 我做错了什么?谢谢

编辑:

这是我正在测试的视图页面(application.html.erb):


咒语中心
正确%>
正确%>


当部分文件名为
\u ad\u column
时,断言将仅为
ad\u column

编辑:

由于您的partial位于shared中,您可能需要在
shared/ad\u列
上断言

编辑2:

我错了,你应该在部分
shared/\u ad\u列
上断言

我认为您缺少的是视图的实际获取和显示

这行吗

it "renders _ad_column" do
  get "/" # Assuming this is the page you are trying to get.
  expect(response).to render_template(:partial => "shared/_ad_column", :count => 2)
end
编辑3:
尝试在
it
块之前包含
render\u视图

我已将其更改为ad\u列,但测试仍然失败。我不知道为什么。我将用我的查看页面更新问题。我很高兴你指出了这一疏忽,我已将我的规范文件更正为
共享/ad_列
,但它仍然说它没有呈现部分。啊!编辑以包括获取视图的可能需要。行吗?我真的很感谢你的努力。我将其更改为
RSpec.descripe“requests/index”,:type=>:view do it“呈现”_ad_column“do get”/“#假设这是您试图获取的页面。expect(response)。要呈现_模板(:partial=>“shared/_ad_column”,:count=>2)end-end
,但即使如此,它似乎仍然没有通过测试。为了澄清,这些部分是在查看页面时呈现的。添加了另一个建议
<!DOCTYPE html>
<html>
  <head>
    <title>Spellhub</title>
    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
    <%= csrf_meta_tags %>
  </head>
  <body>
    <div class="masthead">
      <%= render 'layouts/header' %>
      <!--<h5 class="muted">POC Application</h5>-->
    </div>
    <hr>

    <!-- required parent element for sticky ad-columns -->
    <div class="container-fluid">
      <!-- left column -->
      <%= render 'shared/ad_column', direction: 'left' %>

      <!-- page content goes here -->
      <div class="col-xs-8">
        <!-- for page flash alerts / to do -->
        <%= render 'layouts/messages' %>

        <%= yield %>
      </div>

      <!-- right column -->
      <%= render 'shared/ad_column', direction: 'right' %>
    </div>
  </body>
</html>
it "renders _ad_column" do
  get "/" # Assuming this is the page you are trying to get.
  expect(response).to render_template(:partial => "shared/_ad_column", :count => 2)
end