Случайный ActionView :: Template :: Ошибка, вызванная RSpec, но не в браузере - PullRequest
2 голосов
/ 08 января 2011

У меня есть несколько примеров RSpec, которые я написал для тестирования различных аспектов визуализированного HTML, генерируемого контроллером.К ним относятся такие вещи, как ...

it "should be successful" do
  get :show, :section => @section.slug
  response.should be_success
end

it "should have the right title" do
  get :show, :section => @section.slug
  response.should have_selector("title", :content => @section.name)
end

it "should find the right section" do
  get :show, :section => @section.slug
  assigns(:section).should == @section
end

Это тестирование SectionsController#show.Когда я перехожу на страницу в моем браузере, она отображается без каких-либо исключений.Тем не менее, RSpec возвращает (для всех трех, имейте в виду):

Failure/Error: get :show, :section => @section.slug
ActionView::Template::Error

Это явно не на линии get :show, :section => @section.slug для всех тестов.

Я сузил проблемув один частичный.В файле представления для этого действия я включил партиал с

<%= render 'popular' %>

... и когда эта строка удалена, все тесты проходят.Соответствующее содержание для этой части:

<div class="most_popular group">
    <%= render post_excerpt(@popular.shift, :class => "one") %>
</div><!-- end most popular -->

Этот post_excerpt является вспомогательным методом, который я написал, чтобы возвратить некоторые параметры в виде хэша для передачи render.

def post_excerpt(post, options)
  { :partial => 'posts/post_excerpt', :object => post, :as => :post, :locals => { :klass => options[:class] } }
end

.частичное 'posts / post_excerpt':

<article class="<%= klass if klass %>">
    <h2><%= link_to post.name, section_post_path(post.section, post) %></h2>
    <footer>By <%= link_to post.author.name, post.author %></footer>
    <hr />
    <div class="content">
        <%= raw(post.excerpt) %>
    </div><!-- end content -->
</article>

Я использую RSpec 2.4.0 и Rails 3.0.3.Я могу предоставить более подробную информацию или фрагменты кода, если это необходимо, но я думаю, что этого достаточно для продолжения.

Если вы знаете, что может быть причиной этой странной проблемы, пожалуйста, опубликуйте ее!Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...